程序封装_随记(1)
2015-08-15 11:48
253 查看
一、学会使用结构体
对于你的代码,别人只需要可以简单的调用,不需要知道太多关于函数的问题,因此只需要提供简单的一两个接口。那么多变量,一两个接口怎么可能够,因此就出现了结构体。在函数初始化的时候,人们只关心怎么初始化结构体;功能实现,人们只关心需要传入什么参数,可以传出什么参数;最后在来一个结构体,就相应的内存进行维护,以免内存泄露!
(还记得么,GMM_GRAY;GMM_RGB)
二、学会使用库函数进行封装
对于你那些庞大的代码,人们不关心你是怎么实现,只关心你的庞大的代码可以做什么。因此你需要把他封装为一些库函数。
库函数包含:静态库,动态库(链接时加载和运行时加载两种方式)。
静态库:lib文件和头文件;
动态库:dll文件和lib文件(函数导出库),有时需要头文件;
此时,你的代码,别人不一定会用,此时需要配一个简单的demo,告诉别人怎么使用。
三、学会Release版本
为了看你的函数的功能,人们不会很傻的去搭建一个环境,然后在跑跑你的代码,那不累死了。因此你需要提供程序的Release版本。先让人们看看你的代码可以做什么,然后我们才对你的函数感兴趣。
四、真正理解封装
封装,也就是接口,也就是你只需要提供你程序的接口,尤其在头文件中体现,要最小化的依赖别人的东西。想依赖别人的东西,可以,在cpp函数中。头文件中,你只需要提供导出函数的声明;对于不需要导出的函数的声明及其实现,应该在cpp文件中实现;有时候你一定得依赖别人的头文件(变量的定义是在别人的头文件中的),你可以定义自己的结构体,然后传参。
对于你的代码,别人只需要可以简单的调用,不需要知道太多关于函数的问题,因此只需要提供简单的一两个接口。那么多变量,一两个接口怎么可能够,因此就出现了结构体。在函数初始化的时候,人们只关心怎么初始化结构体;功能实现,人们只关心需要传入什么参数,可以传出什么参数;最后在来一个结构体,就相应的内存进行维护,以免内存泄露!
(还记得么,GMM_GRAY;GMM_RGB)
二、学会使用库函数进行封装
对于你那些庞大的代码,人们不关心你是怎么实现,只关心你的庞大的代码可以做什么。因此你需要把他封装为一些库函数。
库函数包含:静态库,动态库(链接时加载和运行时加载两种方式)。
静态库:lib文件和头文件;
动态库:dll文件和lib文件(函数导出库),有时需要头文件;
此时,你的代码,别人不一定会用,此时需要配一个简单的demo,告诉别人怎么使用。
三、学会Release版本
为了看你的函数的功能,人们不会很傻的去搭建一个环境,然后在跑跑你的代码,那不累死了。因此你需要提供程序的Release版本。先让人们看看你的代码可以做什么,然后我们才对你的函数感兴趣。
四、真正理解封装
封装,也就是接口,也就是你只需要提供你程序的接口,尤其在头文件中体现,要最小化的依赖别人的东西。想依赖别人的东西,可以,在cpp函数中。头文件中,你只需要提供导出函数的声明;对于不需要导出的函数的声明及其实现,应该在cpp文件中实现;有时候你一定得依赖别人的头文件(变量的定义是在别人的头文件中的),你可以定义自己的结构体,然后传参。
相关文章推荐
- 使用background-position 定位背景图片 要注意优先级
- 天体程序猿叹息——变化hosts对
- MIFARE系列6《射频卡与读写器的通信》
- Fragments
- Thread的创建方式以及稍微深入的分析:
- hdu 5384 Danganronpa(AC自动机)
- Spring各组件之间的功能及其之间的交互
- 再说异步调用和NIO
- 我的ROS入门(五):总算搞通ROS的服务节点订阅发布消息话题了
- 如何new与delete各种二维数组
- 【五】C++函数的升级(二)
- winform 的数据驱动
- HTML5 重力感应效果,实现摇一摇效果
- Error LNK2001 无法解析的外部符号
- 开源分布式系统
- C++中delete和delete[]的区别
- HDU 1251 统计难题(字典树)
- PAT《数据结构学习与实验指导》实验项目集 2-12
- JavaScript基础学习之-JavaScript权威指南-3.6包装对象
- 递归遍历文件夹中的文件