《Effective C++》条款23:non-member、non-friend与member函数的抉择

本章节主要概述了非成员、非友元函数和成员函数的抉择问题;

 

本章节主要指出了如果盲目的增加成员函数,调用其他的成员函数,会破坏数据的封装性;

原因:如果对private成员访问越多,约会破坏数据的封装性,所以使用非成员、非友元函数,可以保障数据的封装性,因为只会访问public数据;

 

并且本章节也大致论述了头文件和namespace的关系,也从这个角度说明了non-member和non-friend的优越性;

 

C++程序主体由多个头文件构成,不同的头文件根据不同的需求块又组成了多个不同的namespace空间,所以对于新增的功能函数,最主要的还是需要放在namespace中,而类函数和友元函数并不能很好的做到这一点,更别提继承了来实现了(因为有的类压根就不是为了当基类而生的);

 

所以对于功能函数,还是尽量定义为非成员、非友元函数,通过类外函数调用public成员函数来进行功能实施;

posted @ 2020-12-09 14:54  暮云林凌  阅读(204)  评论(0)    收藏  举报