為什么有橫線的兩行會出錯
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
這是一個二義性的問題
Base2自己有一個b 然后又從Base1繼承了一個b?
當你d.b=2的時候 編譯器不知道是Base1::b=2還是Base2::b=2