第十一章
1.使用成员函数为Stonewt类重载乘法运算符,该运算符将数据成员与double类型的值相乘。注意,用英石和磅表示时,需要进位。也就是说,将10英石8磅乘以2等于21英石2磅。
Stonewt operator*(double mult);
Stonewt Stonewt::operator*(double mult)
{
return Stonewt(mult * pounds);
}
2.友元函数与成员函数之间的区别是什么?
成员函数是类定义的一部分,通过特定的对象来调用,成员函数可以隐式访问调用对象的成员,而无需使用成员运算符。友元函数不是类的组成部分,因此被称为直接函数调用。友元函数不能隐式的访问类成员,而必须将成员运算符用于作为参数传递的对象。
3.非成员函数必须是友元才能访问类成员吗?
要访问私有成员,他必须是友元,但要访问公有成员,可以不是友元
4.使用友元函数为Stonewt类重载乘法运算符,该运算符将double值与Stone值相乘。
friend Stonewt operator*(double mult, const Stonewt & s);
Stonewt operator*(double mult, const Stonewt & s)
{
r