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;
}
};