我有一个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()将向量传递给我对构造函数的调用;然而,当我运行我的程序时,我似乎无法绘制向量的内容,因为我不认为我对向量的引用是有效的。
任何有关通过引用传递的正确方法的帮助都会很棒。
答案 0 :(得分:0)
函数getTexture()
必须返回对函数返回后存在的向量的引用。如果在该函数内声明一个向量并返回对它的引用,它将无效,因为该函数返回后向量的内存无效。