当实例化是可能的但是iheritance不在C++中

Nar*_*rek 0 c++ inheritance design-patterns instantiation decorator

在C++中,Decorator软件设计模式适合在有类型时使用,可以实例化但有一个限制,不允许您从该类继承以添加某些功能.

我的问题是:在C++中我可以拥有一个类的实例但不能从同一个类继承的情况是什么?

Som*_*ude 5

如果您的C++编译器与C++ 11兼容,则可以将该类声明final为使类不可继承:

class A final
{
};
Run Code Online (Sandbox Code Playgroud)

如果您无法访问支持该final关键字的编译器,则必须将构造函数设为私有并使用静态工厂方法:

class A
{
    A() {}

public:
    A createA() { return A(); }
};
Run Code Online (Sandbox Code Playgroud)