35、C++ 类成员函数与特殊成员函数详解

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) 作为 . 运算符左侧后缀表达式的类成员访问表达式。

例如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值