2

ファイルConvert.hに次のようにクラスに静的メソッドがあります

class Convert
{
    public :
    static string convertIntToStr(unsigned int integer);    
};

Convert.cpp

string 
Convert::convertIntToStr(unsigned int integer) 
{
    ostringstream ostr;
    ostr <<  integer;
    return ostr.str();
}

Convert::convertIntToStr として別の .cpp ファイルの他のクラス メソッドでこれを使用しますが、Convert::convertIntToStr(unsigned int) への未定義の参照を示すリンク エラーが発生します。何が問題なのか教えてください。

4

5 に答える 5

4

これは実際にはコメントである必要がありますが、私は SO が初めてで、まだコメントを追加できません。

ばかげた質問で申し訳ありませんが、プロジェクトに Convert.cpp が追加されていますか? Convert.cpp がリンカー用のオブジェクトにコンパイルされていないようです。

于 2013-08-01T16:43:44.123 に答える
3

これはリンカー エラーであり、関数やグローバル変数などの定義が見つからない場合に発生します。すべてのオブジェクト ファイルをリンクしていますか?

于 2013-08-01T16:43:57.007 に答える
3

名前空間で Convert を定義した場合は、呼び出すときにその名前空間を含めていることを確認してください。何かのようなもの

namespace::Convert::convertIntToStr(...)

または、呼び出し元のクラスが同じ名前空間にある。

于 2013-08-01T16:51:41.903 に答える