包含所有头文件,
class Test{
public:
vector<int> vector_int(10);
Test(int num);
~Test();
};
Test::Test(int num){
cout << "constructor employed" <<endl;
vector<int> vector_int;
for (int i = 0; i < num; i++){
vector_int.push_back(i);
}
cout<<"The size is " << vector_int.size()<<endl;
}
int main(){
int num = 10;
Test* a = new Test(10);
cout<< a->vector_int.size()<< " is the size"<<endl;
return 0;
}
结果:使用构造函数 大小是10
0是大小
在我看来,这些尺寸应该是相同的。构造函数也被使用。那么问题是什么?
答案 0 :(得分:4)
您正在使用构造函数中具有相同名称的局部变量来遮蔽类成员变量vector_int
。
从构造函数中删除行vector<int> vector_int;
,它应该按预期工作。