C++基础学习之11 - 初谈代码风格
来源:互联网 发布:win7如何卸载软件 编辑:程序博客网 时间:2024/04/30 13:21
什么样的代码格式是正确的?相信这个问题很难回答,每个人都有自己的习惯,作者就自己对于代码风格的理解整理如下:
1. 优秀的代码必须足够简洁,用最少的代码实现最多的功能,不冗余;
2. 良好的代码风格是易读的,包括良好的命名和一定的注释;
3. 良好的代码风格必须是模块化的,功能单一且没有歧义;
我们来看以下一段代码:
/** 可选项*/const int TYPE_USER = 1; /**< 用户*/const int TYPE_SYSTEM = 2; /**< 系统*/const int TYPE_MACHINE = 4; /**< 机器*/ClassA::ClassA(int _id) :ID(_id) ,m_strName("Linolzhang") ,m_bValid(true){}bool addToLabel(){ if("Linolzhang"==m_strName) return false; // 添加 _addToLabel(m_strName); return true;}我们能够从中看到 1)宏定义 2)小驼峰命名 3)初始化列表 4)简洁注释
那么从管理者的角度,需要什么样级别的代码风格约定呢?作者认为,不要太多,主要的地方约束到即可,否则容易产生抵触情绪,好的方式还是通过更多的团队成员之间互相阅读源码来达到逐步统一的目的,这种影响往往是不经意间发生的,ok,那么开始互相Review代码,让你们的Code越来越有夫妻相吧。
给出作者认为合理的代码约束规范:
/******************************************************************************** @file $FILE_BASE$.$FILE_EXT$* @brief ClassName类定义* @author Linolzhang* @date 2017-1-1 * @version 0.1* @copyright Linolzhang* 其它说明:* 使用样例:* --------------------------------------------------* 修订情况:* 版本 作 者 完成日期 修改内容* V1.0 $Author$ $YEAR$-$MONTH$-$DAY$*******************************************************************************/头文件类格式定义namespace nm{/**枚举类型大写*/#enum WEEK_DAY { SUN, MON, TUE, WED, THU, FRI, SAT };/**代码格式示意,定义类A*/class DefinedClassA : public ClassA{ public: /**构造函数*/ DefinedClassA(); /**析构函数*/ ~DefinedClassA();public: /**成员函数,行列排序*/ bool callMethod1(int nCol,int nRow); /**成员函数,首字母小写*/ void callMethod2(const std::map<int>& mapNum); /**静态函数,首字母大写*/ static void CallMethod3(const char* strName); protected: /**内部调用方法1,返回列表大小*/ int _callMethod4() { return m_listNum.size(); };protected: int m_nNum; /**< number*/ float m_fNum; /**< float number*/ double m_dNum; /**< double number*/ std::string m_strName; /**< std string*/ std::vector<int> m_vecNum; /**< vector*/ std::list<int> m_listNum; /**< list*/ DefinedClassB m_DefClassB; /**< class member*/ DefinedClassC* m_pDefClassC; /**< class member pointer*/ static int m_nSTNum; /**< static member*/};/**全局变量定义,计数器*/long g_nTotalCount;}//namespace zUtilcpp类格式定义/** Constructor*/DefinedClassA::DefinedClassA(){}DefinedClassA::~DefinedClassA(){}/*** 成员函数,行列排序* @param nCol the first argument* @param nRow the second argument* @return The bool result*/bool DefinedClassA::callMethod1(int nCol,int nRow){ if(0==nCol || 0==nRow) // 判断相等时数字放前 return false; else // 括号上下成对出现,只有一行代码可以不加括号 { }}/*** 成员函数,形参 const 引用调用* @param mapNum a map list*/void DefinedClassA::callMethod2(const std::map<int>& mapNum){}///////////////////////////////////////////////////////////////////////////// 类间划分
2 0
- C++基础学习之11 - 初谈代码风格
- LINUX C代码风格
- LINUX C代码风格
- C代码风格
- C语言代码风格
- google代码风格(C++)
- [C++] 代码C风格缩进
- 代码风格之EJB
- Django之代码风格
- 学习C风格字符串
- C/C++代码风格摘录
- C语言代码风格II
- 项目代码风格要求(C#)
- C/C++个人代码风格
- C语言代码书写风格
- c语言学习之代码
- Python 代码风格学习一
- C语言学习基础代码记录
- Office 2013 论文排版心得
- [25]CSS3 弹性伸缩布局(中)
- Mysql、SQLite、Mongo的区别
- [C练习]实现memcpy原型函数
- 第28课 Python的while循环与文件
- C++基础学习之11 - 初谈代码风格
- awk 多行合并一行
- 『家园』的效果
- 文章标题 HDU 1312 : Numerically Speaking (BFS)
- Android 高级面试题及答案
- subeclipse 与SVN的对应版本,及插件下载URL
- C++基础学习之12 - 测试驱动开发
- pip install lxml scrapy pywin32等报错问题解决
- 指数序列