Effective C++ 条款23
C++ 23 Effective 条款
2023-09-11 14:21:00 时间
宁non-member、non-friend顶替member性能
本节介绍笔者为什么时间来实现某些功能。择非成员函数而且是非友元函数。这样做总结一句话,就是最大限度的实现类的封装性。
封装意味着不可见。
愈多东西被封装。欲少人能够看到它,我们就有愈大的弹性去改变它。愈少代码能够看到数据(訪问数据),愈多数据可被封装,我们就更有自由来改变对象数据。愈多函数能够訪问它,数据的封装性就愈低。
我们知道在上一节声明private数据成员也是为了实现类的封装。可见封装对于一个健壮的类来说的重要性。
以上就是作者知识核心。
为了实现封装,作者引入了namespace技术,这样的技术倒是挺有意思。
例如以下代码
**// S.h**
#include<iostream>
namespace myclass
{
class S
{
public:
S(int n):value(n){}
void set(int v)
{
value=v;
}
void get()
{
std::cout<<value;
}
void prit()
{
std::cout<<"****";
}
private:
int value;
};
}
**//S1.h**
#include"S.h"
namespace myclass
{
void p1(S s)
{
s.get();
}
}
**//main.cpp**
#include"S1.h"
int main()
{
myclass::S s(10);
myclass::p1(s);
}
版权声明:本文博主原创文章。博客,未经同意不得转载。
相关文章
- C语言/C++基础之天体运动 graphics+opengl
- Open3D(C++) RANSAC分割多个平面
- paip.c++ sqlite数据库操作总结
- 【华为OD机试 2023最新 】 查找树中元素(C++ 100%)
- C++选择排序小练
- C++ 单例模式
- AI模型C++部署:ubuntu安装Cython并使用C/C++调用python动态库【附加c++与python互相调用算法demo程序接口的源码】
- Ubuntu 14.04报错: error while loading shared libraries libc++.so cannot open shared object file解决
- C/C++之malloc/new分配struct结构体(四十)
- C++自绘对话框标题栏
- C++函数值返回拷贝问题+RVO和NRVO【待学习】
- 工厂模式C++实现
- 【C++ 科学计算】基于 dlib 库的支持向量机SVM实现
- 【图像处理OpenCV(C++版)】——4.2 对比度增强之线性变换
- C++实现彩色bmp图片转灰度图
- VC++ Windows7及以上系统中管理员权限与UAC虚拟化详解(附源码)