[英]Member functions of a derived class
當類從基類派生時,基類的成員函數是否將成為派生類的成員函數。 也就是說,例如,如果我寫:
class A
{
public : void f();
};
class B : public A
{
public : void f1();
};
現在如果問題是在B類中命名成員函數,那么f()也會成為B類的成員函數嗎?
是的, B
類有兩個功能: f1()
和f()
。
如果f()
也在A
中protected
,但f()
只能在A
和B
(以及來自friend
)的成員函數中A
。
如果f()
是private
, B
只有一個函數f1()
。
class A {
public : void f();
};
class B : public A
{
public : void f1();
};
現在代碼有效。 它是可見的。 即使將f1名稱更改為f,它仍然可以在B類中看到。 如果你想使用它,請使用范圍運算符::。
像這樣:
A::f()
關於基本遺產的更多信息http://www.learncpp.com/cpp-tutorial/112-basic-inheritance-in-c/
那么f()也會成為B類的成員函數嗎?
編號f()
仍然是A
類的成員函數, B
類只是繼承它。 在你的情況下,它是一個公共成員函數和公共繼承,意味着你可以在一個B
對象上調用f()
。
B b;
b.f();
另一方面, B
類可以定義自己的成員函數f()
:
class A
{
public : void f();
};
class B : public A
{
public : void f(); // will hide A::f()
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.