1

C++ プログラムを別のファイルに書き込もうとしていますが、うまく動作しないようです。誰かが私を助けることができますか?

セパレート.cpp

#include "separate.h"
#include <iostream>

void Separate() {

cout << "text";

}

分離.h

#include <string>
using namespace std;

class OneLine {

    Separate();

private:
    string vari;

};

main.cpp

#include "separate.cpp"
#include <iostream>

using namespace std;

int main () {

    Separate s;
    s();

return 0;
}
4

3 に答える 3

3

2 つの基本的なエラー:

ではseparate.cpp、必要です

void OneLine::Separate() { /*...*/ }

そして、main.cppあなたのタイプのオブジェクトを作成し、次のように定義されたメソッドを呼び出したいとします:

OneLine ol;
ol.Separate();

このためには、メソッドpublicを変更する必要がありseparate.hます。

class OneLine {

public:
    Separate();

//...
};

この単純な例では必要ないいくつかの変更も必要ですが、長期的には必要になります。

  • ガードを含めたい場合は、「ガードを含める」をググってください
  • あなたはしたくないusing namespace std;- それを取り除き、std::必要に応じて追加してください
于 2013-09-30T14:38:17.483 に答える
3

"separate.h"メインファイルでは、参照する必要があります"separate.cpp"

クラスメソッドではseperate.cpp、クラス名を前に付ける必要があります。

void Oneline::Separate()

OneLineまた、 typeではなくtype のオブジェクトを作成する必要がありますSeperate

そう:

Oneline one;
one.Seperate();
于 2013-09-30T14:41:49.443 に答える
3

実装では、関数を次のように定義します。

void OneLine::Separate() {
  ...

メインでは、OneLine オブジェクトをインスタンス化し、それに対して Separate を呼び出す必要があります。

OneLine o;
o.Separate();
于 2013-09-30T14:38:41.783 に答える