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 private?