c++ - Vectors 在函数中

我的 .cpp 文件中有这些代码行:

void Student::operator+=(const Subject &a){
        vector<Subject> v;
        v.push_back(a);
    }

我有这个运算符重载:

ostream &operator<<(ostream &output, Student &a){
        vector<Subject>v;
        /*for (auto& a:v){
            output<<a<<endl;
        }
        */
        cout<<v.size()<<endl;
        return output;
    }

看起来,当我尝试打印 vector 的元素时,它显示它是空的。它的 v.size() 为 0。

虽然我已经注释掉了另一种显示元素的方式,但它也不起作用。我不知道为什么我的 vector 在函数中使用时会丢失它的大小。有什么可能的帮助吗?

回答1

您的 vector vector<Subject> v; 在每个运算符实现函数中,因此仅在每个函数中本地生成,并将在其结束时被销毁。考虑将这个 vector 声明为你的 Student 类的私有成员。

相似文章

cuda - 使用 thrust 处理 CUDA 类中的向量?

我对thrust在C++类中的适用性有疑问。我正在尝试实现一个类对象,它接收顶点的(x,y,z)坐标作为ver1、ver2和ver3。然后,分配给一个三角形并计算面积和法向量。但是,我不太明白如何创建...

随机推荐

最新文章