2010-06-10 44 views
4

它不適合我。
我有一個頭文件和一個cpp文件。
需要從我的類定義一個轉換運算符到INT,但它在H文件中聲明並在cpp文件中實現時會給我「語法錯誤」。也許我的語法錯了? 在.h文件我已經在「公共」:如何在頭文件中聲明類型轉換並在cpp文件中實現?

operator int(); 

,並在cpp文件我有:

A::operator int() { return mNumber ;} 

,如果我實現它的工作.h文件的功能,但我不」不想這樣做。
任何人都可以幫忙嗎?

+0

我會做的方法'const'。不要認爲它會影響問題,但在語義上我懷疑你的轉換應該修改'A'。 – 2010-06-10 15:07:44

+4

你能發佈錯誤消息嗎? – avakar 2010-06-10 15:07:51

+0

您發佈的內容是否適用於我,假設'mNumber'是一個int成員變量。正如@avakar所說,請發佈錯誤。 – Troubadour 2010-06-10 15:11:52

回答

1

我也想將類聲明與實現分開。關鍵缺失成分是const

// Foobar.hpp 
class Foobar 
{ 
    public: 
     Foobar() : _v(42) {} 

     operator int() const; 

    private: 

     int _v; 
}; 

然後在實現文件:

#include "Foobar.hpp" 

Foobar::operator int() const 
{ 
    return _v; 
} 

看到這個reference

相關問題