這是關於C++(而不是Java)繼承和變量名稱中的歧義。C++私有變量名稱和繼承歧義
假設我在這樣的情況:
class A{
public:
void fct(){do something with x;}
private:
int x;
};
class B: public A{
private:
int x;
};
如果我定義派生類的一些實例
B foo;
,然後調用
foo.fct();
將fct()
作用於A::x
或B::x
? 我希望它在A::x
上採取行動。我不知道在類A中聲明x是否是私有的足以使其在定義派生類時可能出現的不想要的含糊不清之處。
據我所知,只爲B::x
使用不同的名稱是最好的辦法......但假設一個人「分心」,並忘記私人A::x
存在,後果會有多糟?
謝謝!