摘要: 目录1. <<Effective C++>>第三版第12条2. 什么是copying函数?3. 编译器自动生成时,复制的情况4. 自己重载时,复制的情况5. 最黑暗的遗漏复制6. 解决基类成员的复制问题7. 最佳解决办法8. 扩展:构造函数调用构造函数9. new 、operator new 和 placement new 区别10. placement new的含义 11. Placement new 存在的理由 12.如何使用placement new<<Effective C++>>第三版第12条复制对象时勿忘其每一部分。即:通常编译器为我 阅读全文
posted @ 2012-12-27 22:24 邵贤军 阅读(1937) 评论(1) 推荐(1) 编辑
摘要: 1. placement new的含义 placement new 是重载operator new 的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operator new 和 operator delete能够被替换)。1 void *operator new( size_t, void *p ) throw() { return p; } placement new的执行忽略了size_t参数,只返还第二个参数。其结果是允许用户把一个对象放到一个特定的地方,达到调用构造函数的效果。和其他普通的new不同的是,它在括号里多了另外一个参数。比如:1 Widget * p =. 阅读全文
posted @ 2012-12-27 15:28 邵贤军 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 第一段程序: 1 #include <iostream> 2 using namespace std; 3 4 class Demo{ 5 public: 6 Demo(int value); // 默认构造函数 7 Demo(const Demo& rhs); // 拷贝构造函数 8 Demo& operator=(const Demo& rhs); // 重载赋值运算符 9 void printInfo(); // 打印成员值函数10 private:11 ... 阅读全文
posted @ 2012-12-27 00:06 邵贤军 阅读(218) 评论(0) 推荐(0) 编辑