調用函數我有類A和B.從基類
class A{
public:
foo();
};
class B : public A{
public:
int x;
};
假定有選自B類的對象在測試file.How我應該調用foo函數?
object.foo(); // or
object.A::foo();
其他問題:? 我們什麼時候叫這樣的一個功能,如果我做的多重繼承?
調用函數我有類A和B.從基類
class A{
public:
foo();
};
class B : public A{
public:
int x;
};
假定有選自B類的對象在測試file.How我應該調用foo函數?
object.foo(); // or
object.A::foo();
其他問題:? 我們什麼時候叫這樣的一個功能,如果我做的多重繼承?
B類繼承了A類的公共成員,因此功能foo()
也屬於B類,可以採用B類的對象調用。
B b;
b.foo();
你需要知道inheritance in c++.它只是相同
b.x;
見x
和foo()
都是對象b
的成員甚至b
是B類的對象及其可能的,因爲從類B類繼承特徵A,在你的代碼功能foo()
。
注意 A類只有一個成員函數foo()
A a;
a.foo();
是有效的,但
a.x;
無效
編輯:多級繼承C類繼承B類和B類繼承A類,然後
class C : public B{
public:
int y;
};
C c;
c.foo(); // correct
也有效。
而且
c.x;
c.y;
也是有效的,x
,y
,foo()
都是C.類
通知的成員:我告訴你,是多層次的Multiple inheritance in C++是不同的。在繼承的情況下,C++中的三個訪問說明符也非常重要:public private protected in c++
簡單object.foo()
,並沒有太多的更多的補充:
B object;
object.foo();
您有什麼問題?這是非常基本的,你應該嘗試一下。更不用說讀[你的C++書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)... – 2013-03-19 16:51:08
我會極力鼓勵你去到最後鏈接我在我的答案中加入了關於'C++中的私有,公共和受保護繼承'之間的區別 – 2013-03-19 17:15:47