vector.size()始终返回0

布尔加利

我有以下课程:

class MyVector{
public:
    MyVector(int num);
    virtual ~MyVector();
    int my_size();
private:
    vector<int> some_vector;
};

构造函数和size函数如下所示:

MyVector::MyVector(int num) {
    vector <int> some_vector(num); 
}

int MyVector::my_size() {
    return this->some_vector.size(); 

但是,在运行这些行时:

MyVector *Bul = new MyVector(5);
    cout << Bul->my_size() << endl;

输出为0。有人可以解释为什么会这样吗?

科里·克莱默

您的构造函数创建了一个局部变量,该局部变量遮蔽了您的成员变量

MyVector::MyVector(int num) {
    vector<int> some_vector(num); 
}

而是使用成员初始化列表

MyVector::MyVector(int num)
  : some_vector(num)
{
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章