首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教个指针有关问题

2013-11-29 
请问个指针问题!void GetThreshPic(Mat *ptrMat){Mat im *ptrMatif(im.empty()){cout Cannot load i

请问个指针问题!

void GetThreshPic(Mat *ptrMat)
{
Mat im =*ptrMat;




if(im.empty())
{
    cout << "Cannot load image!" << endl;
    }
cvtColor( *ptrMat, *ptrMat, CV_RGB2GRAY );
threshold( *ptrMat, *ptrMat, 125, 255,0 );
//return im;
}
int _tmain(int argc, _TCHAR* argv[])
{
cv::Mat im =  cv::imread("D:\\Program Files (x86)\\CCAD\\CCAD\\splash.jpg"); 
//im=  
 GetThreshPic(&im);


为什么我*ptrMat.empty() 就不行了那?
一定要Mat im =*ptrMat;   im.empty() 才可以
C++ 中不是*ptrMat 就是代表变量了吗?
[解决办法]
(*ptrMat).empty() 
[解决办法]
解引用(*)操作符的优先级比.优先级低,所以先结合后面的,再结合前面的,如果对优先级不是很熟悉的话,适当的添加括号是好事,对程序也没什么影响,增加了程序的可读性,不过,了解操作符的优先级还是有好处的
[解决办法]
引用:
Quote: 引用:

用引用更好,干吗非得用指针?


C++ 里不是以有指针为骄傲的吗?
另外 请问下引用在这里是怎么样的?C++里有引用啊 我都不知道,这里真是个好地方

谁说的?
把 Mat * 改成 Mat&,然后用对象的语法。
[解决办法]
.的优先级比*高

热点排行