string argv []重定义错误C ++

时间:2015-09-10 23:23:06

标签: c++ string constructor argv redefinition

当将字符串(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]));
}

0 个答案:

没有答案