gpt4 book ai didi

opencv - OpenCV 中的 const Mat 引用有意义吗?

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:20 26 4
gpt4 key购买 nike

在下面的函数中

foo(const Mat& img)

img 可以在函数中更改,编译器甚至不会发出警告。为什么?这是否意味着 const Mat 引用没有任何意义?

最佳答案

那是因为 Mat 包含指向实际图像数据的指针。 const 仅适用于 Mat 对象本身(例如行、列等属性),不适用于指针引用的数据。注意:即使函数是

foo(Mat img)

您仍然可以更改图像数据。

将 Mat 作为常量引用传递有很多优点。它告诉程序员一些有关如何使用 foo() 以及如何修改 foo() 的信息。此外,它会阻止您执行以下操作:

void foo(const cv::Mat& img)
{
img.create(5, 6, CV_8UC3);
}

这会得到一个编译器错误。

关于opencv - OpenCV 中的 const Mat 引用有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16771905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com