Advertisement

C++11新增特性旨在实现阻止数据拷贝机制

阅读量:

在C++11新标准下可以通过重载副本构造函数和副本赋值运算符为delete关键字指定的成员函数来实现对象复制被禁止


删除的函数是一种特殊的函数:我们虽然已经声明了这些变量(或对象),但无法以任何合法的方式引用它们。 为了使参数列表中的项被删除而采取措施

程序:

复制代码
     /***********************/
     // @file    nocopy.cc
     // @author  lesliefish(yuleics@126.com)
     /***********************/
    
    struct NoCopy
    {
    NoCopy() = default;    //使用合成的默认构造函数
    NoCopy(const NoCopy&) = delete;  //阻止拷贝
    NoCopy & operator = (const NoCopy&) = delete; //阻止赋值
    ~NoCopy() = default; //使用合成的析构函数
    //其他成员
    };

我们可以对任何函数指定=delete。


析构函数不应是被删除的成员。若析构函数被删除,则无法销毁此类型的对象。

当我们移除了该类型的析构函数时,在C++中我们仍

全部评论 (0)

还没有任何评论哟~