类中矢量成员的奇怪现象

时间:2014-11-11 01:49:45

标签: c++ vector

包含所有头文件,

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是大小

在我看来,这些尺寸应该是相同的。构造函数也被使用。那么问题是什么?

1 个答案:

答案 0 :(得分:4)

您正在使用构造函数中具有相同名称的局部变量来遮蔽类成员变量vector_int

从构造函数中删除行vector<int> vector_int;,它应该按预期工作。