-1

私は C++ に非常に慣れていないため、これが可能かどうかはわかりません。多くのプログラマーが、1 つの cpp ファイルといくつかのヘッダーのみを使用しないように他の人に具体的に指示しているのを見てきました。

私の質問は、別のファイル内から c++ ファイルを開始/移動するにはどうすればよいですか? おそらく、この疑似コードの方が理解しやすいのではないでしょうか?

//Within say main.cpp
int main()
{
    StartProgram(); //Uses a series of commands to run 'StartProgram' like StartProgram();
}

//Within StartProgram()
int maintwo()
{
//Unimportant commands
}

ヘッダー ファイルでこれが可能であることはわかっていますが、既に初期化されているコマンドが原因でエラーが発生するようです。

前もって感謝します!

4

2 に答える 2

5

重複した定義で問題が発生した場合は、ヘッダー ファイルでインクルード ガードを使用する必要があります。例えば:

// header.hxx
#ifndef HEADER_HXX_
#define HEADER_HXX_

void maintwo();

#endif

externヘッダーを使用せず、他のソース ファイルから関数にアクセスする場合は、次のように宣言を使用できます。

// file1.cxx
extern void maintwo();

int main()
{
    maintwo();
}

// file2.cxx
#include <iostream>
void maintwo()
{
    std::cout << "maintwo()" << std::endl;
}

しかし、それらを一緒にリンクする必要があります。GCC コンパイラを使用している場合は、次のように実行できます。

> g++ -c file1.cxx
> g++ -c file2.cxx
> g++ file1.o file2.o -o my_program

私のアドバイスが必要な場合は、インクルードガード付きのヘッダーファイルを使用するだけで、複数の宣言/定義について心配する必要はありません。

于 2013-09-26T12:55:26.397 に答える