答案里認定“純虛函式是一種特殊的虛函式,它是個空函式”這句話是錯的,
我的理解是純虛函式連函式體都沒有,而空函式至少也有函式體.....所以純虛函式一定不是空函式...
1.我的理解是否正確
2.請問能舉例空函式嘛?空普通函式。。空虛函式。。
啊好愚蠢的問題.....
謝謝大佬賞光來溜一眼。。
uj5u.com熱心網友回復:
再來求問一波!孩子在百度百科找到下面的例子,想知道下面的栗子中函式型別明明不是void為什么還不在函式體里回傳一個值呢???寫不寫return都是可以的???但是不寫就會回傳一個隨機值啊!還有就是空函式里可不可以有return?好亂的問題啊......例子:
class Shape
{
public:
virtual float GetArea()=0;//純虛函式
virtual float GetPerim()=0;//純虛函式
};
把其中的純虛函式換成空虛函式
也就是如下
class Shape
{
public:
virtual float GetArea
{}//空虛函式
virtual float GetPerim
{}//空虛函式
};
uj5u.com熱心網友回復:
emm主要是想問空函式里面可不可以有returnuj5u.com熱心網友回復:
同為新手,我說說我的理解:空函式應該是空的函式,沒有陳述句,有陳述句了就不是空函式了。
函式體就是函式的定義,純虛函式沒有定義,只有宣告,空函式的定義里沒有陳述句,我和你的理解一樣。
有含有純虛函式的類是抽象類,不能實體化,類有空函式但沒有純虛函式的話,是可以實體化的。
虛函式可以有return,也可以沒有,沒有return也沒有其他陳述句就是空虛函式了。
virtual float GetArea{}//空虛函式
沒有return,是因為虛函式的緣故,如果他所在的類不需要使用這個函式,就可以先不用寫陳述句。
虛函式體現的是c++多型性。
uj5u.com熱心網友回復:
純虛函除了強制要求多載跟普通虛函式沒差別, 一樣的可以有函式體 ...uj5u.com熱心網友回復:
我覺得樓主是不是考慮換本教材?uj5u.com熱心網友回復:
空函式就是一個普通的函式,只不過函式內部沒有任何代碼實作,我認為是可以有無意義的return陳述句的,比如return PI;這樣的應該不能算空函式虛函式的頂層函式是可能被呼叫到的,因此它是函式;而純虛函式一般是不會被用的,所以C++語言實作上可能根本就沒有任何實作物體。
隨便說一下,純虛函式也是可以有實作的,這時候它當然不是一個空函式了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/29314.html
標籤:新手樂園
