class Temp
{
private:
~Temp() {}
friend class Final;
};
class Final : virtual public Temp
{
public:
void fun()
{
cout<<"In base";
}
};
class Derived : public Final
{
};
void main()
{
Derived obj;
obj.fun();
}
上記のコードは、継承できないクラス(final)を実現しようとします。しかし、上記のコードを使用すると、派生オブジェクトを作成できます。なぜですか?
目的の機能は、ctorがプライベートにされた場合にのみ達成されますが、私の質問は、dtorプライベートの場合にそれが達成できないのはなぜですか?