考虑以下代码:

#include <vector>
using namespace std;
class DummyClass
{
public:
    DummyClass(){};
    DummyClass( int x ){}
    DummyClass (vector<int> array){}
};
int main()
{
    DummyClass(); // compiles
    DummyClass(5); // compiles
    vector<int> array;
    DummyClass obj = DummyClass( array );//compiles
    //DummyClass( array );// doesn't compile

}

为什么最后一行不能编译?错误:使用不同类型重新定义了“数组”:“DummyClass”与“vector”

最佳答案

根据语法,最后一个无法编译的示例与DummyClass array;相同,后者重新声明了array变量。我想你的意思是DummyClass obj2(array);

07-26 09:11