為什么有橫線的兩行會(huì)出錯(cuò)
Class Base1{
???????? …
???????? public:
???????????? int a,b;
?????????????????????????? }
class Base2:public Base1{
???????????? …
???????? public:
???????????? int b,c:
?????? }
void f(){…
? Base2? d;
? d.a=1;
? d.b=2;//如果改成這樣:d.base::b=2;就可以
? d.b=3;
? d.c=4;
? base *dp=&d;//也不行。
}
2019-05-08
這是一個(gè)二義性的問(wèn)題
Base2自己有一個(gè)b 然后又從Base1繼承了一個(gè)b?
當(dāng)你d.b=2的時(shí)候 編譯器不知道是Base1::b=2還是Base2::b=2