c++ - 获取私有(private)实例变量容器成员值的最佳方法

标签 c++ opencv return instance private-members

我是 C++ 的新手,我在弄清楚什么是执行此操作的最佳方法时遇到了一些麻烦。

我已经实现了一个类,我们称它为 imageContainer,它有一个私有(private)的图像 vector 和用图像填充这个 vector 的方法。假设现在,我有另一个具有私有(private) imageContainer 的类,现在,在正确初始化此 imageContainer(读取我希望它包含的图像)之后,我需要处理它的图像。请记住,我的处理不会更改基本图像,只会使用它们计算一些东西。在不复制图像的情况下获取这些图像的最佳、最安全的方法是什么?我想避免复制它们,因为我可能有很多大图像,这会使复制过程非常缓慢。

哦,我正在阅读的图像都是 openCV 的 Mat 类型。 Mat 上的“=”运算符不会复制 Mat,它只会共享数据,这让我认为获取图像的最佳方式是:

Mat imageContainer::getImage(size_t index)
{
    return vectorOfImages[index];
}

但我不太确定。

提前致谢!

最佳答案

返回一个引用以避免复制并将其设为 const 以禁止修改:

const Mat& imageContainer::getImage(size_t index) const
{
  return vectorOfImages[index];
}

关于c++ - 获取私有(private)实例变量容器成员值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125180/

相关文章:

ios - 无法在 iOS 10 上使用 OpenCV 3.1 使用 VideoWriter 创建文件

javascript - jQuery 更改以返回选中或未选中状态

c++ - 使用 TerminateProcess 终止 "mstsc.exe"进程时出现错误代码 (5) 访问被拒绝

c++ - 在 Qt 中获取 "Physical Memory currently used by current process"错误

c++ - 抽象对象不能声明

xcode - OpenCV编译有关 “cvloadimage”的错误,在main.o中引用自:_main

c++ - Mac 上的 OpenCV Contrib 模块安装

c++ - 无法使用 DWM 在自定义窗口框架上绘制

java - Java中如何捕获由于缺少对象而导致的异常?

python - 为什么请求返回 "None"?