class A
{
protected:
string word;
};
class B
{
protected:
string word;
};
class Derived: public A, public B
{
};
では、変数のアクセシビリティはどのようwordに影響を受けDerivedますか? どうすれば解決できますか?
class A
{
protected:
string word;
};
class B
{
protected:
string word;
};
class Derived: public A, public B
{
};
では、変数のアクセシビリティはどのようwordに影響を受けDerivedますか? どうすれば解決できますか?
あいまいになり、それを示すコンパイル エラーが発生します。
それを使用するには、適切なスコープを使用する必要があります。
class Derived: public A, public B
{
Derived()
{
A::word = "A!";
B::word = "B!!";
}
};
クラスDerivedには 2 つの変数がB::wordあり、A::word外部からは次のDerivedようにアクセスできます (アクセスを public に変更した場合)。
Derived c;
c.A::word = "hi";
c.B::word = "happy";
name のフィールドはなく、A::word と B::word しかないため、アクセスしようとするc.wordとエラーが発生します。word
内部Derivedでは、通常のフィールドのように動作し、名前が付けられ、他の回答A::varでも言及されています。B::var
wordのクラスでアクセスするときDerivedは、宣言する必要がありました
class Derived: public A, public B
{
Derived()
{
A::word = X;
//or
B::word = x;
}
};