zoukankan      html  css  js  c++  java
  • effective c++ 6: Explicitly disallow the use of compiler-generated functions you do not want

    假如有个类,我不想让这个类的对象产生副本,即不想让它支持copy构造函数以及copy assignment操作符。那么比较好的办法是把这两个函数声明为private并且不定义

    这样即使member或者friend函数想用着两个函数也会发生连接错误。

    把这个错误提到编译器的一个好办法是专门设计一个Uncopyable类,然后来继承这个Uncopyable类,这样无论任何形式对这两个函数的调用都会在编译期报错了。

    class Uncopyable {
    protected:
        Uncopyable() {}
        ~Uncopyable() {}
    private:
        Uncopyable(const Uncopyable&);//阻止copy
        Uncopyable& operator={const Uncopyable&};
    };

    有个没弄懂的问题是是否以public来继承这个Uncopyable class。还没太弄明白private继承和public继承,待查。

  • 相关阅读:
    WIKI 配置参数
    SSH远程错误或者登录解决方法
    Mysql my.conf配置说明
    Mysql 常用命令
    Nginx 开机启动
    排序的总结
    strcpy函数实现(转载)
    函数指针传递
    地址的强制转换
    结构体内存对齐
  • 原文地址:https://www.cnblogs.com/parapax/p/3643633.html
Copyright © 2011-2022 走看看