【发布时间】:2020-07-28 20:07:00
【问题描述】:
我有以下课程:
class MyVector{
public:
MyVector(int num);
virtual ~MyVector();
int my_size();
private:
vector<int> some_vector;
};
构造函数和大小函数如下所示:
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。谁能解释为什么会这样?
【问题讨论】:
-
欢迎来到 Stackoverflow。我建议你对 C++ 中的初始化列表做一些研究。
-
无关:您不必使用指针和
new来代替Bul。MyVector Bul(5);应该足够且易于管理。 -
提高编译器的警告级别。它应该可以告诉你隐藏成员变量名的局部变量名。