当将字符串(argv [])作为参数传递给类构造函数时,我遇到了重新定义错误。示例代码如下。 cA1产生重新定义错误,但所有cA2,cA3,cA4和func都很好。有人可以帮我吗?
class A
{
public:
A(string String1, string String2);
~A();
};
void func(string String1, string String2)
{
}
void main(int argc, char** argv)
{
//error C2086: 'std::string argv[]' : redefinition
A cA1(string(argv[1]), string(argv[2]));
string String1 = string(argv[1]);
string String2 = string(argv[2]);
//fine
A cA2(String1, String2);
//fine
A cA3(argv[1], argv[2]);
//fine
A cA4(string(argv[1]).c_str(), string(argv[2]).c_str());
//fine
func(string(argv[1]), string(argv[2]));
}