通过引用将向量传递给类

Passing a vector to a class by reference

本文关键字:向量 引用      更新时间:2023-10-16

我有一个叫做图像的纹理向量。我想通过引用将其传递给一个名为 Section 的类,因此它不会被复制。

图像是在头文件中创建的。 图像在 draw 方法中创建了纹理,其中:

void ofApp::draw(){
if (video0.isFrameNew()){
    ofPixels pixels = video0.getPixels();
    images.emplace_back();
    images.back().allocate(pixels);
    }
}

我有一个 getTextures() 函数通过引用返回我的图像,我认为向量应该仍然存在,因为我在此函数中使用它之前已经初始化了它。

vector<ofTexture> &ofApp::getTextures(){
    return  images;
}

我在调用我的构造函数时使用它,该构造函数位于 void ofApp::setup() 中的 for 循环中

imSec.push_back(Section(getTextures());

我使用 getTextures() 将向量传递到我对构造函数的调用中;但是,当我运行程序时,我似乎无法绘制向量的内容,因为我认为我对向量的引用不起作用。

任何关于通过引用的正确方式的帮助都会很棒。

函数

getTexture()必须返回对函数返回后存在的向量的引用。如果在该函数中声明一个向量并返回对它的引用,它将不起作用,因为向量的内存在函数返回后失效。