今天遇了这个错误,呵呵,一开始在类的定义里,把一小段代码原封不动的拷到另一个成员函数内部,结果一直提示这个不能通过编译,看来看去不知道啥原因,后来才发现是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,在前面表示返回的是常量字符指针,在后面表示这个函数不会修改成员变量。