【发布时间】:2015-09-10 23:23:06
【问题描述】:
当将 string(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]));
}
【问题讨论】:
-
你也应该包括你的错误输出。
-
@robert 我把错误输出放在 cmets 上
标签: c++ string constructor argv redefinition