第十一章 使用类复习题

Stonewt Stonewt::*(double n)
{
	Stonewt temp;
	temp.stone = stone * a +pound * a / 14;
	temp.pounds = (pound * a) % 14;
	return temp;
}

友元函数:①函数原型需要使用friend;②调用的对象一般是非类对象;③在运算符重载函数里,有两个参数,并且往往一个是类对象、一个是非类对象;④在函数定义里,若不是内联函数,无需使用类作用域解析运算符在函数头中;

成员函数:①函数原型无需使用friend;②调用的对象是类对象;③在运算符重载函数里,类对象被隐式的传递给了函数;④若不是内联函数,那么在函数定义的函数头,需要使用作用域解析运算符。

成员函数是类定义的一部分,通过特定的对象来调用,可以直接调用对象的成员,而无需使用成员运算符(那个句号)。

友元函数不是类的组成部分,不是隐式的访问对象的成员,而是通过参数传递的对象来访问,并且需要使用成员运算符。

一般是,因为友元函数才能获得和成员函数一样的权限来访问类成员。

如果不使用友元函数,那么若要访问类成员,则只能访问类的公有成员,而无法访问私有成员。或者,类方法里有返回私有成员的值的公有成员函数。

Stone operator* (double a, const Stonewt & b)
{
	return temp;
	temp.stone = b.Stone * a;
	return temp;
}

(1)sizeof sizeof运算符

(2). ←这是一个句号,成员运算符,比如结构名.结构内变量

(3).* ←句号和乘号,成员指针运算符(没见过)

(4):: ←两个冒号,作用域解析运算符

(5)?: 条件运算符,比如: a>b?c:d

(6)typeid ←一个RTTI运算符(没见过)

(7)const_cast ←强制类型转换运算符(没见过这种用法)

(8)dynamic_cast ←强制类型转换运算符(没见过这种用法)

(9)reinterpret_cast ←强制类型转换运算符(没见过这种用法)

(10)static_cast ←强制类型转换运算符(没见过这种用法)

只能通过类成员函数来进行重载

operator double()

{
	return mag;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值