18:努力让接口完美且最小化
为了客户端的方便调用,接口中可能会定义很多方法,而其中可能右很多方法是多余或是重复的,这样会导致接口中方法太多,让用户迷失在一堆的方法中,而且大型接口不易维护,长长的class定义导致头文件很长,会增大编译的时间。但是也不必太过吝啬方法的个数,如果加入一个member function会是class更好用,会是增加一个member function能减少客户端的错误,那都是这些方法都是成为接口一份子的理由。
19:区分member functions,non-member functions和friend functions三者
member function可以是虚函数而non-member function不可以,如果一个函数必须是动态绑定的那么他就必须是虚函数,就必须是memberfunction,虚函数能实现动态绑定是因为子类可以根据自己的需要重写父类的虚方法实现动态绑定,而non-member function不可能被重写。Friend function是独立于class的,他只是可以访问class的私有成员,如果一个方法不需要访问一个class的私有成员,就不应该让这个方法称为这个类的friend function。
class Rational
{
Link URL: http://blog.jobbole.com/24306/?utm_source=rss&utm_medium=rss&utm_campaign=effective-c%25ef%25bc%259a%25e7%25b1%25bb%25e4%25b8%258e%25e5%2587%25bd%25e6%2595%25b0%25e7%259a%2584%25e8%25ae%25be%25e8%25ae%25a1%25e5%2592%258c%25e7%2594%25b3%25e6%2598%258e
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27207730/viewspace-737980/ ,如需转载,请注明出处,否则将追究法律责任。