0

エラー LNK2019 および LNK1120 に問題があります。

私は2つのプロジェクトで解決策を持っています。最初のプログラムには自分のプログラムがあり、2 番目のプロジェクトにはテスト ファイルがあります。

2 番目のプロジェクトでは、ヘッダー ファイルを (クラスと共に) インクルードできます。そして、インラインメソッドを使用できます。しかし...私はヘッダーファイルで.cppファイルに実装された静的プライベートメソッドを定義しました。この静的プライベート メソッドを使用するパブリック インライン メソッドをテストする場合、LNK2019 エラーと致命的なエラー LNK1120 が発生します。

どうすればいいのかわからない...最初のプロジェクトでエラーなしで使用できるので、私にとっては良さそうです...

例を見てください...解決策:

プロジェクト 1:

// example.h
class Example {
public:
    void method() { static_method(); };
private:
    static void static_method();
};

// example.cpp
void Example::static_method() { /* implementation */ }

// main.cpp
void main()
{
    Example e;
    e.method();    // it works!
}

しかし...

PROJECT2 (ソリューション内):

// test.cpp
void main()
{
    Example e;
    e.method(); // it doesn't work (but if I add implementation of
                // Example::static_method() to header file example.h - it's OK)
}

私たちを手伝ってくれますか?【VS2010】

ありがとう。

4

2 に答える 2

0

次のように .h ファイルに静的メソッドを実装してみてください。

// example.h
class Example {
public:
    void method1() { static_method(); };
private:
    static void static_method() { // implementation }
};

// example.cpp
/* nothing here yet... */

// main.cpp
void main()
{
    Example e;
    e.method1();    // it works!
}
于 2013-06-08T20:19:20.767 に答える