Effective C++读书笔记---将成员变量声明为Private;宁以非成员、非友元函数替换成员函数
2016-10-23 13:37
302 查看
将成员变量声明为Private
原因如下:
1,语法一致性,暴露出来的都是函数
2.可以对每一个变量实现权限控制,“不准访问”“只读访问”“读写访问”
3.具备更好的封装性,可以有效保障在更改某些成员变量时不会影响客户的使用
protected成员变量同样不具备较好的封装性。
宁以非成员、非友元函数替换成员函数
此条款的逻辑是这样的,当我们讨论一个类的封装性的时候。越少的代码可以看到数据,越多的数据可以被封装时,其封装性也就越好。
因此可以直接访问私有成员代码的多少直接影响封装性。如果一个函数的功能均可实现,在成员函数、非成员函数选择时建议选择非成员函数。
在C++中较合适的处理方式是将非成员函数位于类的同一个命名空间中即可。
namespace namespace WebBrowserStuff
{
class WebBrower{};
void clearBrowser(WebBrower& wb);
}
原因如下:
1,语法一致性,暴露出来的都是函数
2.可以对每一个变量实现权限控制,“不准访问”“只读访问”“读写访问”
3.具备更好的封装性,可以有效保障在更改某些成员变量时不会影响客户的使用
protected成员变量同样不具备较好的封装性。
宁以非成员、非友元函数替换成员函数
此条款的逻辑是这样的,当我们讨论一个类的封装性的时候。越少的代码可以看到数据,越多的数据可以被封装时,其封装性也就越好。
因此可以直接访问私有成员代码的多少直接影响封装性。如果一个函数的功能均可实现,在成员函数、非成员函数选择时建议选择非成员函数。
在C++中较合适的处理方式是将非成员函数位于类的同一个命名空间中即可。
namespace namespace WebBrowserStuff
{
class WebBrower{};
void clearBrowser(WebBrower& wb);
}
相关文章推荐
- effective c++条款21,22,23(返回对象时,别妄想反回其引用,将成员变量声明为private,宁可拿非成员非友元函数替换成员函数(增强封装性))
- Effective C++ (E3 22、23)笔记之成员变量声明为private、以非成员非友元函数替代成员函数
- 类的static成员变量和成员函数能被继承吗? 友元函数能访问父类的private变量吗?那static成员函数能是纯虚函数吗,能被继承吗?
- c++ 变量声明: 成员函数指针 成员变量指针
- effective C++ 条款 22:将成员变量声明为private
- 条款22:将成员变量声明为private
- [原创] 将基类的private成员函数声明为虚函数的讨论
- 将成员变量声明为private——effective c++学习笔记
- 将基类的private成员函数声明为虚函数的讨论
- Effective C++:条款22:将成员变量声明为private
- 条款22、将成员变量声明为private
- Effective C++ -----条款22:将成员变量声明为private
- 条款22:将成员变量声明为private
- 条款22:将成员变量声明为private
- 条款22:将成员变量声明为private
- public protected private 成员函数和成员变量在public protected private 继承后访问权限问题
- python的 public 、private成员变量、成员函数总结
- 读书笔记_Effective_C++_条款二十二:将成员变量声明为private
- c++ public, protected, private成员变量,成员函数继承和访问规则实例代码
- 【22】将成员变量声明为private