亲首先表示你的图看着脖子疼。然后这个是指针函数啊亲,返回指向常量的一个指针,然后这个常量是AFX_MSGMAP这个类型的,总地来说就是这样。。你看这个关系图应该能懂吧,啊好复杂==
const int *const method(const int *const ¶m) const;
1 2 3 4 5
1:const int
常量整型(值不能被修改)
2:*const
常量指针(指向的对象不能被修改)
1和2结合起来:const int *const method();
返回指向常量整型的常量指针。
3:同1
4:同2
3和4结合起来:const int *const ¶m
形参为指向 指向常量整型的常量指针的 引用。
5:method() const;
调用该方法,不会改变该类内部非 mutable 成员。
看定义
CClass {
public:
const AFX_MSGMAP GetMessagemap() const
private:
AFX_MSGMAP messageMap;
};
const AFX_MSGMAP * CClass::GetMessagemap() const {
return &CClass::messageMap;
}
是对类CClass中成员函数GetMessagemap()的实现。
第一个const 表示反回的是常量,第二个const表示里面的实现不改内部变量。
按通俗的讲就,第一个const是别人不能改,第二个const是自己也不改。