我的工程实践考虑用的工具之一是OpenGL,所以我找了一份基于OpenGL的地图的源代码:
一.
Terrain3DTest.h:主头文件。包括其他项目特定的标头(包括Resource.h)并声明CTerrain3DTestApp应用程序类。
Terrain3DTest.cpp :包含应用程序的主应用程序源文件类CTerrain3DTestApp。
Terrain3DTest.rc:所有Microsoft Windows资源的列表程序使用。包括存储的图标、位图和游标在RES子目录中。
Terrain3DTest.clw:包含ClassWizard用于编辑现有信息的信息类或添加新类。ClassWizard也使用这个文件来存储创建和编辑消息映射和对话框数据所需的信息映射和创建原型成员函数。
res \ Terrain3DTest.ico:一个图标文件,用作应用程序的图标。这图标包含在主资源文件Terrain3DTest.rc中。
res \ Terrain3DTest.rc2:此包含微软没有编辑的资源Visual c++。
MainFrm.h, MainFrm.cpp:包含框架类CMainFrame,从CFrameWnd控制所有SDI帧功能。
res \ Toolbar.bmp:这个位图文件用于为工具栏创建平铺图像。初始工具栏和状态栏是在CMainFrame中构造的类。
Terrain3DTestDoc.h, Terrain3DTestDoc.cpp :包含CTerrain3DTestDoc类。
Terrain3DTestView.h, Terrain3DTestView.cpp:包含CTerrain3DTestView类。CTerrain3DTestView对象用于查看CTerrain3DTestDoc对象。
StdAfx.h, StdAfx.cpp:用于构建预编译头文件(PCH)Terrain3DTest命名。pch和一个名为StdAfx.obj的预编译类型文件。
Resource.h:标准头文件,定义了新的资源id。 Vc++读取并更新此文件。
总的来说文件名命名的比较清晰易懂。
二.
类与类,类和方法之间空格严格为一行间隙。
每行代码也不超过八十个字符。
但是类和方法命名上有些混乱,匈牙利命名和大驼峰法混用。
注释较少,易读性差。
三.
c++语言在代码规则和风格上我觉得没有绝对的好坏。
缩进是用tab还是空格?我个人选择tab,仅仅也是因为少敲几下键盘。
括号是跟在行尾还是另起一行,都可以。我喜欢另起一行,每队括号垂直对齐。
命名是用匈牙利法还是驼峰法?类变量在前还是函数在前。
先自定义头文件后系统头文件,能够更快地发现自定义文件中的冲突。先系统头文件后自定义文件,可以减少隐藏头文件的依赖。
总的来说,代码风格无好坏,最重要的是在一个项目中要统一,注释要让人易于理解。一切的目的都是为了更有效率的代码。