5

これはプログラムです:

#include <iostream>
using namespace std;

int main() {
cout << "Enter a number";
int i;
cin >> i;
try {
    if( i == 0 ) throw 0;
    if( i == 2 ) throw "error";
} catch( int i ) {
    cout << "can't divide by 0";
 }
   catch( ... ) {
       cout << "catching other exceptions";
   }
}

コンパイル時に(Windows7でのMicrosoftVisual C ++ 2010 Express)、次のようなエラーが発生します。

致命的なエラーLNK1169:1つ以上の複数定義されたシンボルが見つかりました

4

4 に答える 4

16

実際、このコードにはエラーはありません

ソースファイルの数が問題になる可能性があります。このコードを同じコンパイラの新しいプロジェクトとして試すかsource files、テキスト領域の左側(つまり、コードを記述している場所)のオプションからファイルを削除してみてください。

その後、これをコンパイルする必要があります。

于 2011-06-28T12:42:12.697 に答える
5

最後に、私たちは通常、mainを整数(int main)として.cppファイルに割り当て、同じプロジェクトに同じプロジェクトで複数の.cppファイルを書き込む場合があることを知っているので、問題の最も妥当な説明を見つけたと思います。 (int main()).soプログラムの場合、同じプロジェクトフォルダーで同じ関数を誤って2回繰り返したということです。これは、一方の.cppファイルに(int main)を書き込み、もう一方の.cppを書き込むだけです。同じプロジェクト内のファイルは(int submain)でそれらを書き込み、gonaが何が起こるかを確認します。

于 2012-11-21T08:30:09.577 に答える
2

に変更してみてint main()くださいint submain()

于 2012-02-25T10:36:10.200 に答える
-4

私はあなたのエラーがこの行から来ていると思います:

catch(int i)

この範囲には、そのような名前の変数がすでにあります。また、整数ではなく、例外をキャッチする必要があります。

于 2011-06-28T12:30:53.083 に答える