友元的尴尬能力
一,友元的概念
(一)什么是友元
1,友元是C++中的一种关系
2,友元关系发生在函数与类之间或者类与类之间
3,友元关系是单项的,不能传递
二,友元的用法
(一)在类中以friend关键字声明友元
(二)类的友元可以是其他类或者具体函数
(三)友元不是类的一部分
(四)友元不受类中访问级别的限制
(五)友元可以直接访问具体类的所有成员
三,友元的语法
(一)在类中用friend关键字对函数或类进行声明
class Point
{
double x;
double y;
friend void func(Point& p);
};
void func(Point& p)
{
}
四,友元的尴尬
(一)友元是为了兼顾C语言的高效而诞生的
(二)友元直接破坏了面向对象的封装性
(三)友元在实际产品中的高效是得不偿失的
(四)友元在现代软件工程中已经逐渐被遗弃
五,注意事项
(一)友元关系不具备传递性
(二)类的友元可以是其他类的成员函数
(三)类的友元可以是某个完整的类
(四)所有的成员函数都是友元
六,小结
(一)友元是为了兼顾C语言的高效而诞生的
(二)友元直接破坏了面向对象的封装性
(三)友元关系不具备传递性
(四)类的友元可以是其他类的成员函数
(五)类的友元可以是某个完整的类