通过引用将向量传递给类

时间:2017-01-17 11:05:50

标签: c++ vector openframeworks

我有一个ofTextures矢量称为图像。我想将它传递给一个名为Section by 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()将向量传递给我对构造函数的调用;然而,当我运行我的程序时,我似乎无法绘制向量的内容,因为我不认为我对向量的引用是有效的。

任何有关通过引用传递的正确方法的帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

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