[英]vector.size() returns 0 all the time
I have the following class:我有以下 class:
class MyVector{
public:
MyVector(int num);
virtual ~MyVector();
int my_size();
private:
vector<int> some_vector;
};
The constructor and size function look like this:构造函数和大小 function 如下所示:
MyVector::MyVector(int num) {
vector <int> some_vector(num);
}
int MyVector::my_size() {
return this->some_vector.size();
However when running these lines:但是,在运行这些行时:
MyVector *Bul = new MyVector(5);
cout << Bul->my_size() << endl;
The output is 0. Can anyone explain why is this happening? output 为 0。谁能解释为什么会这样?
Your constructor makes a local variable that shadows your member variable您的构造函数创建一个局部变量来隐藏您的成员变量
MyVector::MyVector(int num) {
vector<int> some_vector(num);
}
Instead use the member initialization list而是使用成员初始化列表
MyVector::MyVector(int num)
: some_vector(num)
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.