哪些函数不能被继承: 构造函数、析构函数、拷贝构造函数、赋值操作符重载函数(赋值构造函数) 哪些函数不能为虚函数:(定义虚函数一般是为了使用多态性质) 普通函数(非成员函数):不属于类的成员,不能用于多态,只能被重载。 静态成员函数:静态成员函数属于类的信息,被所有对象共享,不归某个对象所有,没有动 ...
分类:
其他好文 时间:
2016-09-07 22:36:38
阅读次数:
193
1.什么是复制构造函数 复制构造函数:是构造函数,其只有一个参数,参数类型是所属类的类型,且参数是一个const引用。 作用:将本类的成员变量赋值为引用形参的成员变量。 2.什么是赋值操作符 赋值操作符:返回值是本类的引用类型,参数类型是所属类的类型,且参数是一个const引用。 作用与复制构造函数 ...
分类:
编程语言 时间:
2016-09-07 01:07:02
阅读次数:
163
一、浅拷贝和深拷贝所谓浅拷贝,就是由默认的拷贝构造函数所实现的对数据成员逐一赋值。若类中含有指针类型的数据,这种方式只是简单的把指针的指向赋值给新成员,但并没有给新成员分配内存,因此这种方式必然会导致错误。为了解决浅拷贝出现的错误,必须显示的定义一个拷贝构..
分类:
其他好文 时间:
2016-09-06 23:33:30
阅读次数:
195
String类的简单实现:1、在拷贝构造函数和赋值运算符重载这两个函数中有浅拷贝和深拷贝的问题2、要对输入输出函数重载3、赋值运算符重载有两种方式。注意在采用交换实现的时候函数的参数只能是临时变量classString
{
friendostream&operator<<(ostream&os,Strin..
分类:
其他好文 时间:
2016-09-06 23:32:13
阅读次数:
174
拷贝控制操作:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数。 实现拷贝控制操作的最困难的地方是首先认识到什么时候需要定义这些操作。 拷贝构造函数: 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数时拷贝构造函数。 参数是引用:为了避免陷入 ...
分类:
其他好文 时间:
2016-09-05 17:06:07
阅读次数:
167
C++语言本身或者标准库抛出的异常都是 exception 的子类,称为标准异常(Standard Exception)。你可以通过下面的语句来匹配所有标准异常: 之所以使用引用,是为了提高效率。如果不使用引用,就要经历一次对象拷贝(拷贝对象时要调用拷贝构造函数)的过程。 exception 类位于 ...
分类:
编程语言 时间:
2016-09-04 11:35:43
阅读次数:
182
也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造函数能解决一些我们常常会忽略的问题。 为了说明复制构造函数作用,我先说说我们在编程 ...
分类:
其他好文 时间:
2016-09-01 20:02:13
阅读次数:
144
一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: [c-sharp] view plain copy int a = 100; int b = a; [c-sharp] view plain copy [c-sharp] view plain copy 而类对象 ...
分类:
其他好文 时间:
2016-09-01 18:46:55
阅读次数:
233
左值和右值的区别:左值就是在赋值中可以放在赋值操作符两边的值,比如: int a = 1; double b = 2.0 a = b; b = a; 这里a和b都是左值,一切变量都是左值,但const量是例外。 而右值则是只可以放在赋值操作符右边的值,比如: int a = 0; char *b = ...
分类:
编程语言 时间:
2016-08-29 06:50:00
阅读次数:
251
在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。 但是如果我问你“拷贝构造函数的参数为什么必须使用引用类型?”这个问题, 你会怎么回答? 或许你会回答为了减少一次内存拷贝? 很惭愧的是,我的第一感觉也是这么回答。不好还好,我有理性这个好品质。思 ...
分类:
其他好文 时间:
2016-08-26 18:30:44
阅读次数:
151