这是一个程序:
#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";
}
}
在编译时(Windows 7上的Microsoft Visual C ++ 2010 Express),我收到错误消息:
致命错误LNK1169:一个或多个 找到多个定义的符号
答案 0 :(得分:16)
实际上此代码中没有错误。
源文件的数量可能是问题。
在同一个编译器中尝试将此代码用作新项目,或尝试从文本区域左侧的source files
选项中删除文件(即您编写代码的位置)
这应该编译然后。
答案 1 :(得分:4)
最后我认为我找到了最合理的问题解释,因为你知道我们通常在我们的.cpp文件中将main指定为整数(int main),有时我们可能在同一个项目中编写多个.cpp文件与程序相同的(int main())。so意味着我们在同一个项目文件夹中意外地重复了两次相同的函数。我们要做的就是用(int main)写一个.cpp文件
中,同一个项目中的其他.cpp文件用(int submain)编写它们答案 2 :(得分:2)
尝试将您的int main()
更改为int submain()
。
答案 3 :(得分:-3)
我怀疑你的错误来自这一行:
catch(int i)
你已经有一个在这个范围内命名的变量。此外,您应该捕获异常,而不是整数。