[英]C++ header file and function declaration ending in “= 0”
我在.h文件中有以下代碼,我不確定賦值語句的作用是什么以及如何正確調用它?
virtual void yield() = 0;
我認為該函數默認返回值為0,但由於此函數返回void,我有點困惑。 任何人都可以對此發表評論並且可能會說我怎么能參考這個賦值,我的意思是如何用C ++術語來調用它?
謝謝。
這是一個純虛函數。 這意味着,子類必須實現此函數,否則它們是抽象的,這意味着您無法創建該類的對象。
class ISomeInterface {
public:
virtual std::string ToString( ) = 0;
}
class SomeInterfaceImpl : public ISomeInterface {
public:
virtual std::string ToString( ) {
return "SomeInterfaceImpl";
}
}
這個想法是,一個類可以暴露某個方法,但是子類必須實現它。 在此示例中, ISomeInterface
公開了一個ToString
方法,但沒有合理的默認實現,因此它使該方法純虛擬。 然后像SomeInterfaceImpl
這樣的子類可以提供適合的實現。
如果是一個純粹的虛擬方法(又名抽象),請看這里或谷歌http://www.artima.com/cppsource/pure_virtual.html
= 0並不意味着默認返回值,它是通知功能是純虛擬的
語法模糊,但“= 0”表示該方法是純虛函數。 它使類抽象(你不能實例化它),它的實現留給派生類。
當您要定義的所有內容都是接口時使用。 如果要定義接口,請使用virtual關鍵字,並提供默認實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.