任何人都可以告诉如何创建类,以便它不能被任何其他类继承。
class A {
public :
int a;
int b;
};
class B : class A {
public :
int c;
};
在上面的程序中我不想让其他类继承B类
答案 0 :(得分:13)
标记类final
(自C ++ 11起):
class A final {
public :
int a;
int b;
};
答案 1 :(得分:5)
如果您使用的是C ++ 11或更高版本,则可以使用final
关键字,就像提到的其他答案一样。 这应该是推荐的解决方案。
但是,如果必须使用C ++ 03 / C ++ 98,您可以创建类的构造函数private
,并使用工厂方法或类创建此类的对象。
class A {
private:
A(int i, int j) : a(i), b(j) {}
// other constructors.
friend A* create_A(int i, int j);
// maybe other factory methods.
};
A* create_A(int i, int j) {
return new A(i, j);
}
// maybe other factory methods.