尝试在构造函数中使用 vector<int> 启动 class 时出错

Error when try to initiate a class with vector<int> in a constructor

考虑以下代码:

#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

}

为什么最后一行无法编译?错误:使用不同类型重新定义 'array':'DummyClass' 与 'vector'

根据语法,最后一个编译失败的例子与DummyClass array;一样,重新声明了变量array。我想你的意思是 DummyClass obj2(array);