尝试在构造函数中使用 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);
考虑以下代码:
#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);