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

Effective C++学习笔记 条款06:如不想使用编译器自动生成的函数,就该明确拒绝

时间:2014-10-31 01:09:49      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   sp   div   on   log   cti   

一、为驳回编译器自动提供的机能,可将相应成员函数声明为private并且不予实现。(如果你仅仅是自己不实现的话,编译器会帮你实现)

  如:

class A
{
    public:
        A(const string& name):m_name(name) {}
    private:
        //拒绝copy和赋值,声明为private,并且只声明不实现
        A(const A&);
        A& operator=(const A&);
    private:
        string m_name;
};

二、对于拒绝赋值的copy的类,也可以继承一个Uncopyable的基类

class Uncopyable
{
    public:
        Uncopyable() {}
        ~Uncopyable() {}
    private:
        Uncopyable(const Uncopyable&);
        Uncopyable& operator=(const Uncopyable&);
};
class A: public Uncopyable // 继承Uncopyable不一定要是public ! { public: A(const string& name): m_name(name) {} private: string m_name; };

 

Effective C++学习笔记 条款06:如不想使用编译器自动生成的函数,就该明确拒绝

标签:style   blog   color   使用   sp   div   on   log   cti   

原文地址:http://www.cnblogs.com/wangjzh/p/4064077.html

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