构造函数和析构函数
目录
页面
构造/和析构函数
问题
编译器为什么要求拷贝构造为什么要传引用?
如果存在两个 同类型的对象A a, b ,如果将a 拷贝给 b ,实际上call b类的拷贝构造,b对象的拷贝对象是如果是非引用形式。以 a() 实参, (A const A a)形参 ,这时是同一类型,他又回去call 形参的拷贝构造,形参还是(A const A a)形参 ,实参又去形参的拷贝构造 ,套娃。。。
Int & 不能拷贝给匿名对象上的
为什么要const A &a (45 被bind 后是没有绑定匿名对象上的,const 是为兼容bind 到匿名对象的 )
做一个逻辑上的常量限制。(从逻辑上是不允许被拷贝对象被修改的)
兼容const类型的拷贝 不允许直接吧const 类型的变量直接传到址非const的引用, 因为非const 是可以修改的。
构造函数与析构函数
构造/和析构函数使用方式默认构造函数ostream a;ostream(string name )ostream a(xx)ostream (const ostream &a)拷贝构造 于 = 不等价~ostream无 析构每个对象创建时,一定call 构造函数,当然销毁也一定会调析构。
[code]class Data{public : Data() { cout |