copy constructor
《inside the c++ object model》是本非常好的书, 特别是帮助对类的构造和析构的理解.
下面我要是的一个就是关于 c++ 默认的拷贝构造函数; 一般我们用到它在以下情况
- // class A {...};
- A aa; // default ctor
- A a = aa; // copy ctor
- //
- void func(A a) { // TODO }
- func(a) // copy ctor
- A f() { return A(); }
- f(); // copy ctor
- // 以下是我遇到与下面相似问题时的产生的这个思考
- class B : public A {
- B(const A &a) A(a) {...} // A 没有 explicit copy constructor
- // TODO
- };
? 当我没在 A 中定义自己的 copy constructor, 便会使用类自动生成的默认 copy constructor, 那么默认生成的这个函数行为是什么呢?
? 其实这里有个 default memberwise initialization 的东西, 就是把每一个 data member 的值拷贝过去,(貌似遇到指针, 会出现浅拷贝的情况) 但是他不会拷贝其中的 member class object, 而是以递归的方式实施 memberwise initialization.
来源: http://www.bubuko.com/infodetail-3492264.html