2

次のコードはどのように機能していますか? 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;
}
4

3 に答える 3