构造函数 构造函数为了提供初始化用的, 构造函数有:默认构造函数,拷贝构造函数 #include <iostream> using namespace std; // 同一个项目最好不要有相同的类名(防止串包) // 默认构造函数:可以写成有参数的并且,形参写上初始值 class Test2 { p ...
分类:
编程语言 时间:
2018-06-10 20:41:50
阅读次数:
164
构造函数 类自带两种构造函数:拷贝构造函数与无参构造函数。 类有3种构造函数:一般构造函数,复制构造函数,转换构造函数。 自己写的任何一个构造函数都会让类自带的对应种类的构造函数失效。 构造函数的其他写法: 构造函数的调用方法: 基础方法 无参构造函数: 转换构造函数: 鬼畜的转换构造函数: ??? ...
分类:
其他好文 时间:
2018-06-10 11:39:25
阅读次数:
160
记住:如果没有声明任何构造函数,编译器会声明一个默认构造函数。如果自己没有声明,编译器会声明一个拷贝构造函数,一个赋值操作符和一个析构函数。 不能。对于内含引用成员的类,必须自己定义赋值操作符。 更改const成员是不合法的。另外,如果父类将copy assignment操作符声明为private, ...
分类:
编程语言 时间:
2018-06-09 23:19:39
阅读次数:
221
记住:为防止编译器暗自提供的功能,可将相应的成员函数声明为privae并且不予实现。也可以使用Uncopyable这样的父类实现。 对于独一无二的对象,希望不支持拷贝构造函数和赋值操作符。 另一种方法 基类中 继承方式 子类中 public & public继承 => publicpublic & ...
分类:
编程语言 时间:
2018-06-09 23:14:16
阅读次数:
269
部分参考地址https://blog.csdn.net/yanglingwell/article/details/56011576 auto_ptr是c++标准库里的智能指针,但是具有以下几个明显的缺陷,使用时要注意 1.就是所谓的控制权转移,下面是模拟代码 在赋值运算符重载和拷贝构造函数中将资源转 ...
分类:
其他好文 时间:
2018-06-09 13:28:29
阅读次数:
218
基类的构造函数并没有被派生类继承 析构函数和拷贝赋值操作符同样也没有 类的设计者通过把成员函数声明为 const 以表明它们不修改类对象 把一个修改类数据成员的函数声明为 const 是非法的 (518) 把类成员函数申明为const,可以防止修改类数据 参数表相同的成员函数可以重载(const、非 ...
分类:
编程语言 时间:
2018-06-08 20:38:56
阅读次数:
203
1 函数的重载、重写(重定义)、函数覆盖及隐藏 其实函数重载与函数重写、函数覆盖和函数隐藏不是一个层面上的概念。前者是同一个类内,或者同一个函数作用域内,同名不同参数列表的函数之间的关系。而后三者是基类和派生类函数不同情况下的关系。 1.1 函数重载 正如上文说的函数的重载是指类内部,同名不同参数列 ...
分类:
编程语言 时间:
2018-06-04 21:25:25
阅读次数:
167
Problem B: 还会用继承吗? Description 定义一个Base类,包括1个int类型的属性,以及满足输出格式要求的构造函数、拷贝构造函数和析构函数。 定义Base类的子类Derived,包括1个int类型的属性, 以及满足输出格式要求的构造函数、拷贝构造函数和析构函数。 定义一个Ba ...
分类:
其他好文 时间:
2018-06-03 17:37:14
阅读次数:
234
当我们学习了 C++ 一段时间后,便会产生好多问题。我们今天就几个问题来讨论下,一是关于赋值的疑问,那便是什么时候需要重载赋值操作符?编译器是否提供默认的赋值操作?编译器为每个类默认的重载了赋值操作符,默认的赋值操作符仅完成浅拷贝。当需要进行深拷贝时必须重载赋值操作符,赋值操作符与拷贝构造函数有相同的存在意义。
分类:
其他好文 时间:
2018-05-23 11:01:58
阅读次数:
141
我们在之前已经是实现了复数类的相加操作,那么我们今天就来完善下复数类。一个完整的复数类应该具备的操作有:运算(+, -, *, /);比较(==, !=);赋值(=);求模(modulus);利用的就是操作符重载来统一实现复数与实数的运算和比较方式。
分类:
其他好文 时间:
2018-05-21 22:53:33
阅读次数:
206