0
のは、私が持っているとしましょう:保護された静的メンバーを持つC2248(アクセスできないメンバー)を取得するのはなぜですか?
#include <Windows.h>
#include <iostream>
#include <vector>
std::vector<int> Base::m_intList;
class Base
{
public:
Base();
protected:
static std::vector<int> m_intList;
};
class Derived : Base
{
public:
Derived();
protected:
bool fWhatever;
};
class MoreDerived : Derived
{
public:
MoreDerived();
private:
HRESULT DoStuff();
};
Base::Base()
{
}
Derived::Derived()
{
}
MoreDerived::MoreDerived()
{
}
HRESULT MoreDerived::DoStuff()
{
for (auto it = m_intList.begin(); it != m_intList.end(); it++)
{
std::cout << *it;
}
}
を、私はこれをコンパイルしようとすると、私が手に「m_intListを:アクセスできないメンバーが 『MoreDerived』クラスで宣言アクセスすることはできません」。
質問:派生クラスのDoStuff関数で保護された静的メンバーにアクセスできないのはなぜですか?
'Derived'は' Base'を 'private'で継承します。それはあなたの意図ですか? – songyuanyao
'std :: vector Base :: m_intList;は' Base'が宣言されていないのでエラーです。あなたが求めているエラーを与えた正確なコードを投稿してください –