命名空间的问题

来源:互联网 发布:sql查询分析器时间函数 编辑:程序博客网 时间:2024/04/29 16:25

在ros中使用opencv进行图像的处理,有几点测试现记录如下:
1.在不声明 using namesapce cv ; 时用到很多opencv中的类/函数,如Mat / imshow(),都需要前缀命名空间作用阈cv:: ,但是标准库中的函数不用添加前缀std:: ,例如malloc(),free()等,当然添加之后也可以编译通过,但是string类确需要添加作用阈前缀std::猜想可能是string在std和cv命名空间下都有同名的定义,所以需要指定使用的是哪一个。
2.当声明using namespace cv;之后用到opencv中的类/函数前缀cv::就可以省略了,然而string类的前缀也可以不加了,并且无论是加std::还是cv::都可以编译通过,再猜想可能是cv命名空间是在std命名空间下的子空间?但是查找opencv2的头文件确并没有发现这样的定义,why?……

0 0
原创粉丝点击