网站开发需要20万,医疗网站做药品是干嘛,广告平面设计软件有哪些,搜索引擎营销实践报告C11 oop中的default、delete与Noncopyable
default
在C11标准中#xff0c;可以使用default关键字来显式地声明默认的构造函数和析构函数。
使用default关键字可以用来显式声明默认的构造函数和析构函数。这样做可以让编译器自动生成默认实现
–--关于构造函数…C11 oop中的default、delete与Noncopyable
default
在C11标准中可以使用default关键字来显式地声明默认的构造函数和析构函数。
使用default关键字可以用来显式声明默认的构造函数和析构函数。这样做可以让编译器自动生成默认实现
–--关于构造函数--–
class A {
public:// 显式声明默认构造函数A() default;// 显式声明默认析构函数~A() default;
};int main() {A obj; // 调用默认构造函数return 0;
}注意 1. Defaulted 函数特性仅适用于类的特殊成员函数且该特殊成员函数没有默认参数。 2. Defaulted 函数既可以在类体里inline定义也可以在类体外定义。 delete
使用delete关键字的函数在其他地方无法使用即这个函数不存在禁止定义。
class A {
public:// 禁止拷贝构造函数 A (const A ) delete; //“delete”特性可以作用于非特殊成员函数void f() delete;
};int main() {A obj; // 调用默认构造函数return 0;
}Noncopyable不可拷贝对象
封装一个不可拷贝对象Noncopyable当类需要不可拷贝时可继承自Noncopyable
#ifndef __RADIXUN_NONCOPYABLE_H__
#define __RADIXUN_NONCOPYABLE_H__namespace radixun{/*** brief 对象无法拷贝,赋值*/
class Noncopyable{
public:/*** brief 默认析构函数*/Noncopyable() default;/*** brief 默认析构函数*/~Noncopyable() default;/*** brief 拷贝构造函数(禁用)*/Noncopyable(const Noncopyable) delete;/*** brief 赋值函数(禁用)*/ Noncopyable operator(const Noncopyable) delete;
};}#endif