次のコードはどのように機能していますか? MakeFinal コンストラクターは保護されているため、FinalUser クラスからアクセスできないようにする必要があります。しかし、ビルドまたは実行エラーは発生しませんでした。
class MakeFinal
{
protected:
MakeFinal(void) {};
public:
~MakeFinal(void) {};
};
class Final : virtual public MakeFinal
{
public:
Final(void) {};
~Final(void) {};
};
class FinalUser : public Final
{
public:
FinalUser(void) {};
~FinalUser(void) {};
};
int main()
{
FinalUser *finalUserHeap_ = new FinalUser();
return 0;
}