22.如何禁止一个类被实例化-灵析社区

菜鸟码转

1.方法一:

  • 在类中定义一个纯虚函数,使该类成为抽象基类,因为不能创建抽象基类的实例化对象;

C++

#include <iostream>

using namespace std;


class A {
public:
    int var1, var2;
    A(){
        var1 = 10;
        var2 = 20;
    }
    virtual void fun() = 0; // 纯虚函数
};

int main()
{
    A ex1; // error: cannot declare variable 'ex1' to be of abstract type 'A'
    return 0;
}

2.方法二:

  • 将类的所有构造函数声明为私有 private;

3.方法三:

  • C++ 11 以后,将类的所有构造函数用 =delete 修饰;

阅读量:1221

点赞量:0

收藏量:0