龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

《Effective C++》读书笔记05:c++默默为您编写的函数(2)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
上面的例子是理想的情况,就是每个变量都是可以直接赋值过去的,没有引用类型和const类型,假如有这两种类型的成员变量,则会报错 1 class NameObject 2

  上面的例子是理想的情况,就是每个变量都是可以直接赋值过去的,没有引用类型和const类型,假如有这两种类型的成员变量,则会报错 

 1 class NameObject

 2 {

 3 public:

 4        NameObject(string& name, const int& value);

 5 private:

 6        string& nameValue;        //引用类型

 7        const int objectValue;    //const类型         

 8 };

 9

10 int main()

11 {

12   string newDog("DaHuang");

13   string oldDog("XiaoGuai");

14   NameObject p(newDog, 2);

15   NameObject s(oldDog, 36);

16   p = s;           //错误,不能更改non-static的引用成员的指向,不能更改const成员的值

17                       //所以编译器提示不能 使用default assignment,并报错

18   return 0;

19   system("PAUSE");   

20 }

  所以,在存在这样的成员变量时,尽可能自己定义coyy构造函数和copy assignment函数

精彩图集

赞助商链接