我想了解在我使用的库中实现的类中使用的构造函数。类SequenceAnalyzer的主要组成部分是这样的:通过引用对象构造一个类
class SequenceAnalyzer {
protected:
std::vector<cv::Mat> images_;
public:
SequenceAnalyzer(std::vector<cv::Mat> *images = NULL)
{
if (images != NULL)
images_ = (*images);
}
};
当我的主要构建这个类的一个实例,我将它传递一个参考向量:
std::vector<cv::Mat> myImages;
SequenceAnalyzer se(&myImages);
现在在我的图像通过引用传递将他们的位置传递给班级。但是我对(* images)操作符的理解意味着它们的地址已被解除引用,因此=操作符会复制这些内容。
以这种方式将myImages传入课程有什么好处吗?为什么指针首先被使用,如果它不以保存的复制开销结束呢?
我在这里没有看到任何引用。 –
如果你指的是引用和指针之间的区别,恐怕这对我来说是一个朦胧的话题。如果您指的是我在说的是哪个库,则是[OpenCV Structure from Motion library project](http://code.google.com/p/gsoc2011sfm/)。 – Chris
您将它作为指针传递给'vector'对象myImages。 –
Praveen