cannot convert 'this' pointer from 'const class CVMR_Capture' to 'class CVMR_Capture &'

今天遇了这个错误,呵呵,一开始在类的定义里,把一小段代码原封不动的拷到另一个成员函数内部,结果一直提示这个不能通过编译,看来看去不知道啥原因,后来才发现是const函数的定义引起的,只要把函数定义成普通的类型就行了。呵呵!顺便把const函数复习一下。

 

出错提示:VMR_Capture.cpp(832) : error C2662: 'GrabFrame' : cannot convert 'this' pointer from 'const class CVMR_Capture' to 'class CVMR_Capture &'

 

头文件中的定义:

 BOOL ConvertRGBtoYUV420P( const BYTE * rgb,BYTE * yuv, unsigned rgbIncrement,BOOL flip ) const;

源文件中的实现:
BOOL CVMR_Capture::ConvertRGBtoYUV420P( const BYTE * rgb,BYTE * yuv, unsigned rgbIncrement,BOOL flip ) const
{

       ... ...

}

这样在调用其它普通成员函数时就会在编译时提示出错: error C2662: 'GrabFrame' : cannot convert 'this' pointer from 'const class CVMR_Capture' to 'class CVMR_Capture &'

解决办法是把函数定义后面的 “const” 去掉!

 

const,在前面表示返回的是常量字符指针,在后面表示这个函数不会修改成员变量。


 

你可能感兴趣的:(cannot convert 'this' pointer from 'const class CVMR_Capture' to 'class CVMR_Capture &')