簡體   English   中英

當已經定義了默認參數時,調用不帶參數的函數

[英]Calling function without parameter, when default parameter is allready defined

我用C ++編寫已經很長時間了,我無法在網上找到問題的解決方案,因此這個問題:

我有一個類,我想用默認參數定義一個函數:Run(par =“default”)

class.h包含:

class Test { public : void Run(QString par="default");};

class.cpp包含:

void Test::Run(QString par="default") { ... };

我得到的問題是,當我嘗試調用此函數時,沒有參數(我想使用默認值),編譯器抱怨函數run()的不存在。

Test test;
test.Run()

7:錯誤:未定義引用`Test :: Run()'

我寧願不使用函數重載。

我試圖僅在.cpp中刪除默認值,但編譯器錯誤仍然存​​在。

我在這忘記了什么? 我正在使用GCC編譯QT。

如果聲明默認參數,則只在類聲明中設置它。 在定義中,您將其留空。

class Test { public : void Run(QString par="default");};
void Test::Run(QString par) { ... };

應該沒事

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM