我刚看了一下谭浩强先生写的《C程序设计》关于函数这一章,确实有返回指针值的函数,但它的定义形式是这样的:例如: float * search(int x int y); 即:类型标识符 * 函数名(参数表),这种定义与MFC中的定义还是有很大区别的,MFC: OnDraw(CDC* pDC) 函数名前面没有“*”号 也没有函数返回值类型 ,所以还是不一样的。这是为什么呢?难道C++ 中的函数定义和C存在很大差别吗? 在C++中如何写返回值为指针的函数?它的标准定义是什么样的?( 类似于C语言:类型标识符 * 函数名(参数表)的对应形式,C++应当是什么样子的? )
A1. 楼主看错了,完整的 OnDraw 的定义是这样的
void CxxxxView::OnDraw(CDC* pDC)
{
......
}
该函数的返回值是 void 的,这与 C 还是一样的.
Q2. 难道C++ 中的函数定义和C存在很大差别吗?
A2. 如果定义普通函数,是一样的;若是定义成员函数,是不一样的.C 没有成员函数,C++ 有成员函数,比如上面的 OnDraw 就是成员函数.Q3. 在C++中如何写返回值为指针的函数?
A3. 对于普通函数,应该这样写:
类型 * 函数名(参数列表)
对于成员函数,应该这样写:
类型 * 类名::函数名(参数列表)Q4. 它的标准定义是什么样的?( 类似于C语言:类型标识符 * 函数名(参数表)的对应形式,C++应当是什么样子的? )
A4. 见 A3