C 中在基類裡宣告為const的純虛擬函式在派生類裡的同名函

2021-05-24 01:35:27 字數 710 閱讀 5281

1樓:非常愛學習的人

必須,函式是否為const也是過載條件之一比如在一個類裡,存在重名函式

void print();

void print()const;

那麼是合法的過載

但是如果是

int print();

const int print();

則不是合法過載

因此想要實體化circle類,必須實現一個形如double print()const的函式才行

2樓:匿名使用者

virtual double print()const=0;這裡指明一個一const型別的函式,並且是一個沒有函式體的純虛擬函式。因此,在派生的時候,也應該是一個const型別的函式。函式過載的條件是,函式名和型別是一樣的。

在類的繼承時,引數及返回值型別也要一樣,但在不使用類的一般情況下,引數型別和個數以及返回值型別可以不同,但函式名必須也要相同,同時,引數個數及型別一定不能與被過載的函式完全相同。例如:

void print();

void print(int i);

是一對過載函式。

void print(int i);

void print(float i);

也是一對過載函式。

而void print();

float print();

則不是一對過載函式。

c定義虛基類Shape,在Shape類的基礎上

include using namespace std class shape void shape createshape class rectangle virtual public shape rectangle rectangle float a,float b float rectangl...

C 類的公有繼承,基類的私有成員在派生類中不可見或不可訪問

在c 語言中,一個派生類可以從一個基類派生,也可以從多個基類派生。從一個基類派生的繼承稱為單繼承 從多個基類派生的繼承稱為多繼承。方式如下 公有繼承 public 私有繼承 private 保護繼承 protected 是常用的三種繼承方式。1.公有繼承 public 公有繼承的特點是基類的公有成員...

在C 中,我的問題關於 基類有同名成員引起的二義性這個知識點

我來試著回答一下,大家看看是不是這樣 1.原本語句列印 在a1中 這個應該不用解釋,這個時候只有a1中存在print方法。2.增加a2 print 函式後,由於a2繼承a1所以a2 print 函式覆蓋 overwritten a1 print 函式,所以這種情況下,對於a2及a2的所有子類的例項來...