码迷,mamicode.com
首页 > 编程语言 > 详细

条款5.了解c++默默编写并且调用了哪些函数。

时间:2015-10-04 20:50:52      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

  如果想在一个内含reference成员的class内支持赋值操作,必须自己定义copy assignment操作符。而且面对“内含有const成员的”class,编译器的反应也是相同的,由于更改const成员是非法的,所以编译器不知道如何在其自己生成的赋值函数之中去面对他们。

template<class T>
class NameObject
{
    public:
        NameObject(std::string & name, const T & value;
        ...
    private:
        std::string & nameValue;  //这里这个是一个reference
        const T objectValue;      //这里这个是一个const
};
  在上面的类之中,由于自己定义了一个引用,那么自己必须定义copy构造函数以及拷贝赋值运算符。对于const变量也是这样。
 
  还有一种情况就是基类如果将拷贝赋值运算符声明为私有的时候,编译器就会拒绝为其派生类声明一个拷贝赋值运算符。

 

条款5.了解c++默默编写并且调用了哪些函数。

标签:

原文地址:http://www.cnblogs.com/-wang-cheng/p/4854935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!