为类的构造函数增加 = delete 修饰符,可以达到虽然声明了构造函数但禁止使用的目的。
C++
#include <iostream>
using namespace std;
class A {
public:
int var1, var2;
A(){
var1 = 10;
var2 = 20;
}
A(int tmp1, int tmp2) = delete;
};
int main()
{
A ex1;
A ex2(12,13); // error: use of deleted function 'A::A(int, int)'
return 0;
}
如果我们仅仅将构造函数设置为私有,类内部的成员和友元还可以访问,无法完全禁止。而在 C++11 以后,在成员函数声明后加 "= delete"则可以禁止该函数的使用,而需要保留的加 "= default"。
阅读量:2020
点赞量:0
收藏量:0