C++ 类成员函数与特殊成员函数详解
1. 成员函数声明与调用
成员函数可以使用函数类型的 typedef 进行声明(但不能定义),其类型与显式提供函数声明符时完全相同。例如:
typedef void fv();
typedef void fvc() const;
struct S {
fv memfunc1; // equivalent to: void memfunc1();
void memfunc2();
fvc memfunc3; // equivalent to: void memfunc3() const;
};
fv S::* pmfv1 = &S::memfunc1;
fv S::* pmfv2 = &S::memfunc2;
fvc S::* pmfv3 = &S::memfunc3;
非静态成员函数可以通过类成员访问语法为其类类型的对象或从其类类型派生的对象调用,也可以在其类或派生类的成员函数体内直接使用函数调用语法调用。若为非类型 X 或其派生类型的对象调用类 X 的非静态成员函数,行为未定义。
当在类 X 的成员中使用不是类成员访问语法一部分且不用于形成成员指针的 id 表达式时,若名称查找将 id 表达式中的名称解析为某个类 C 的非静态非类型成员,且 id 表达式可能被求值或 C 是 X 或 X 的基类,则 id 表达式将转换为使用 (*this) 作为 . 运算符左侧后缀表达式的类成员访问表达式。
例如:
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



