#include<stdio.h>
class A {public: int a; };
class B: public A {private: int a;};
int main(){
B b;
printf("%d", b.a);
return 0;
}
#include<stdio.h>
class A {public: int a; };
class B: private A {};
int main(){
B b;
printf("%d", b.a);
return 0;
}
我問,因爲我得到不同的錯誤:這兩段代碼有什麼區別嗎?
error: 'int B::a' is private
error: 'int A::a' is inaccessible
除了什麼錯誤可能會顯示,有任何差別在這兩個代碼的行爲?
在第二個例子中,也'了'會在那裏,但無法訪問。所以,有什麼區別? – Moeb 2010-06-13 18:36:47
@Poiuyt:有幾點不同,其中一個顯然是宣言,Mark指出的其中一些。也許你需要澄清你的意思是「有什麼不同?」。 – Stephen 2010-06-13 19:10:04
@Poiuyt:在第一個例子中,它與「a」不一樣。這是一個不同的'a',它掩蓋了'A :: a'。 – 2010-06-13 19:44:05