码迷,mamicode.com
首页 > 其他好文 > 详细

条款6:若不想使用编译器自动生成的函数,就该明确拒绝(Explicity disallow the use of compiler-generated functions you do not want)

时间:2015-08-29 12:21:33      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

class uncopyable{

protected:

    uncopyable(){};                                                              //允许derived 对象构造和析构

    ~uncopyable(){};

 private:

     uncopyable(const uncopyalbe& );                                     //但阻止copying

     uncopyable& operator= (const uncopyalbe&);

};

 

class homeforsale: private uncopyable{                                    //class 不再声明

.......                                                                                   //copy 构造函数或

};                                                                                       //copy assignment 操作符

 

 

一般要么client、member函数、friend 函数 尝试调用拷贝homeforsale object。这种写法都会明确拒绝。

NOTE:

    为了驳回编译器自动(暗自)提供的机能,可将相应的成员函数声明为private并且不予实现,使用uncopyable这样的base class 也是一样的。

条款6:若不想使用编译器自动生成的函数,就该明确拒绝(Explicity disallow the use of compiler-generated functions you do not want)

标签:

原文地址:http://www.cnblogs.com/chip/p/4768778.html

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