Effective C++读书笔记

编译器自动生成的函数

一般而言,编译器会为每一个类声明一个default构造函数copy构造函数copy assignment操作符析构函数,这些函数都是publicinline

 唯有这些函数被需要(被调用)时,他们才会被编译器创建出来

如果打算在一个内含reference成员const成员的class内支持赋值操作,你必须定义自己的copy assignment操作符。如果某个base class将copy assignment操作符

声明为private,编译器将拒绝为其derived class生成一个copy assignment操作符。

 

不能复制的类

将copy constructor或copy assignment声明为private,这个做法并不绝对安全,因为member函数和friend函数还是可以调用private函数。将成员函数声明为private

但故意不去实现它们,使得不慎调用操作会产生一个连接错误(linkage error)

将连接期错误移至编译器是可能的

 

posted @ 2015-03-16 10:23  啊哈灵机一动  阅读(146)  评论(0)    收藏  举报