【发布时间】:2014-03-29 05:30:02
【问题描述】:
只是一个简单的问题..我通过源代码找到了很多点击,无法查看。尝试将 grep 的输出保存到文件中,即
grep -r "noArray" . >> search
然后在“搜索”文件中搜索 typedef 和 enum ......但什么都没找到
【问题讨论】:
只是一个简单的问题..我通过源代码找到了很多点击,无法查看。尝试将 grep 的输出保存到文件中,即
grep -r "noArray" . >> search
然后在“搜索”文件中搜索 typedef 和 enum ......但什么都没找到
【问题讨论】:
在 OpenCV 2.4.8 中,函数在 modules\core\include\opencv2\core\core.hpp:1453 中声明:
CV_EXPORTS OutputArray noArray();
并且定义在modules\core\src\matrix.cpp:1731:
static _OutputArray _none;
OutputArray noArray() { return _none; }
编辑
_none 是使用默认构造函数初始化的_OutputArray 类型的静态对象,默认构造函数为空(参见modules\core\src\matrix.cpp:1332)。因此,由于_OutputArray 派生自_InputArray,因此也会调用_InputArray 的默认构造函数。第二个构造函数在modules\core\src\matrix.cpp:921 中定义如下:
_InputArray::_InputArray() : flags(0), obj(0) {}
其中flags 和obj 是各自类型int 和void* 的成员变量。因此_none 不是空指针,但它包含一个。
【讨论】:
_none 不是 NULL 指针,但它包含一个。查看我的编辑。