- 11.8
- 2.友元函数与成员函数的区别是什么?
- 3. 非成员函数必须是友元才能访问类成员吗?
- 5. 哪些运算符不能重载
- 6. 在重载= , () , [] , -> 时,有什么限制
成员函数是类定义的一部分,由类生成的所有对象均会共享一组类的成员函数。成员函数能够访问类内的所有数据成员
友元函数是一个拥有特殊访问权限的非成员函数,可以访问类内的私有成员,但是并不能隐式的访问,必须通过成员运算符的方式来访问类对象的数据成员。
不正确
从访问控制方式上说,非成员函数可以直接通过类对象访问公有的数据接口,但是不能访问私有的数据接口。
通过友元函数,可以和类的成员函数一样直接访问类内的所有数据成员和函数,包括私有的数据成员和函数。
因此友元的访问权限更大,一般的非成员函数只能访问类提供的公有数据接口。
sizeof运算符
.成员运算符
.*成员指针运算符
:: 作用域解析运算符
?: 条件运算符
typeid 一个RTTI运算符
const_cast 强制类型转换运算符
dynamic_cast 强制类型转换运算符
reintepret_cast 强制类型转换运算符
static_cast强制类型转换运算符
运算符重载的基本四条限制
- 重载运算符至少有一个参数是用户自定义的类型
- 使用的运算符不能违反该运算符本身的语法规则
- 不能创建新的运算符
- 部分运算符不能重载
特殊:大多数运算符可以通过成员函数或非成员(友元)函数进行重载,但上述的几个只能通过成员函数进行重载,不能通过友元函数进行重载



