您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页取消默认构造,拷贝构造和赋值构造的宏定义

取消默认构造,拷贝构造和赋值构造的宏定义

来源:筏尚旅游网

宏定义如下:

// Put this in the declarations for a class to be unassignable.
#define RTC_DISALLOW_ASSIGN(TypeName) \
  void operator=(const TypeName&) = delete

// A macro to disallow the copy constructor and operator= functions. This should
// be used in the declarations for a class.
#define RTC_DISALLOW_COPY_AND_ASSIGN(TypeName) \
  TypeName(const TypeName&) = delete;          \
  RTC_DISALLOW_ASSIGN(TypeName)

// A macro to disallow all the implicit constructors, namely the default
// constructor, copy constructor and operator= functions.
//
// This should be used in the declarations for a class that wants to prevent
// anyone from instantiating it. This is especially useful for classes
// containing only static methods.
#define RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
  TypeName() = delete;                               \
  RTC_DISALLOW_COPY_AND_ASSIGN(TypeName)

可见,

(1)取消了默认构造,即取消了拷贝和赋值构造;

(2)取消了拷贝构造,即取消了赋值构造.

使用方法如下:

class RTPSender{
  RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(RTPSender);
};

可以取消RTPSender的默认构造,默认拷贝构造和默认的赋值构造函数.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务