第十九章 19.4.2节练习

练习19.14

下面的代码合法吗?如果合法,代码的含义是什么?如果不合法,解释原因。

auto pmf = &Screen::get_cursor;

pmf = &Screen::get;

解答:

合法:

(1) pmf是一个指针,他可以指向Screen的某个常量的成员函数。这里他指向了get_cursor函数。

(2) pmf指向了get函数。


练习19.15

普通函数指针和指向成员函数的指针有何区别?

解答:

【引用】和普通指针不同的是,在成员函数和指向改成员的指针之间不存在自动转换规则。


练习19.16

声明一个类型别名,令其作为指向Sales_data的avg_price成员的指针的同义词。

解答:

using avg_price_pointer = double (Sales_data::*)() const;

avg_price_pointer  p = &Sales_data::avg_price;


练习19.17

为Screen的所有成员函数类型各定义一个类型别名。

解答:

using get_pointer1 = char (Screen::*)() const;

using get_pointer2 = char (Screen::*)(Screen::pos, Screen::pos) const;

get_pointer1 p1 = &Screen::get_cursor;

get_pointer1 p2 = &Screen::get;

get_pointer2 p3 = &Screen::get;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值