C++代码风格与规范 //* * Copyright(c) 2008 by Microsoft Corporation * All right reserved. * * 文件名称: polymorphism.h * 文件标识: * 描 述: 多态性演示 * * 当前版本: 1.1 * 作 者: James * 完成日期: 2/26/2008 * * 取代版本: 1.0 * 作 者: Kacy * 完成日期: 2/24/2008 */ #ifndef _POLYMORPHISM_H_ #define _POLYMORPHISM_H_ const int MAX_LENGTH=100; //常量全用大写的字母,用下划线分割单词 int g_howManyPeople; //不得已需要全局变量,加前缀g_,表示global class Shape; //类名用大写字母开头的单词组合而成,如class LeafNode, class Person void Draw(Shape *aShape); //全局函数的名字应该使用"动词"或者"动宾词组",如DrawBox() class Shape { public: virtual void Draw(void)=0; }; //类之间的空行 class Circle : public Shape { //采用以行为为中的类版式:将public类型的函数写在前面,而将private类型的数据写在后面 public: Circle() : m_radius(0.0) {} virtual void Draw(void); //函数名用大写字母开关的单词组合而成,如GetName(),Eat() double GetRadius(); //用正确的反义词组命名相反动作的函数,如GetAge()和SetAge() void SetRadius(double radius); //参数用小写字母开头的单词组合而成,如(int drawMode) private: //类的数据成员加前缀_m,表示member double m_radius; //变量用小写字母开头的单词组合而成,如drawMode, newValue, oldValue static int m_s_numberOfCircle; //静态变量用s_开头表示static }; class Cube : public Shape { public: virtual void Draw(void); }; class Sphere : public Shape { public: virtual void Draw(void); }; #endif /* * Copyright(c) 2008 by Microsoft Corporation * All right reserved. * * 文件名称: polymorphism.cpp * 文件标识: * 描 述: 多态性演示 * * 当前版本: 1.1 * 作 者: James * 完成日期: 2/26/2008 * * 取代版本: 1.0 * 作 者: Kacy * 完成日期: 2/24/2008 */ #include <iostream> #include "polymorphism.h" using namespace std; /* * 函数功能: 画圆 * 输入参数: 空 * 输出参数: 无 * 返 回 值: 空 */ void Circle::Draw(void) { cout<<"Draw a Circle!"<<endl; } double Circle::GetRadius() { return m_radius; } void Circle::SetRadius(double radius) { m_radius=radius; } //函数之间的空行 void Cube::Draw(void) { cout<<"Draw a Cube!"<<endl; } void Sphere::Draw(void) { cout<<"Draw a Sphere!"<<endl; } void Draw(Shape *aShape) { aShape->Draw(); } void main() { Circle aCircle; Cube aCube; Sphere aSphere; //函数内部的空行(加在逻辑上不太相关的语句之间) Draw(&aCircle); Draw(&aCube); Draw(&aSphere); Circle anotherCircle; //变量的名字当使用"形容词+名词" double radius; //变量的名字当使用"名词" anotherCircle.SetRadius(2.33); radius=anotherCircle.GetRadius(); cout<<radius<<endl; } int width=10; //定义并初始化width int height=10; //定义并初始化height int depth=10; //定义并初始化depth if(condition) { return x; } else { return y; } return (condition ? x : y); for(initialization; condition; update) { //program code } //空行 while(condition) { statement1; //空行 if(condition) { //program code } else { //program code } //空行 statement2; }//end of while void Func(const int *x, const int *y, const int *z) { //program code } if((very_longer_variable1 >= very_longer_variable2) && (very_longer_variable3 <= very_longer_variable4) && (very_longer_variable5 <= very_longer_variable6) { //program code } HWND CreateWindow(LPCTSTR lpClassName, // registered class name LPCTSTR lpWindowName, // window name DWORD dwStyle, // window style int x, // horizontal position of window int y, // vertical position of window int nWidth, // window width int nHeight, // window height HWND hWndParent, // handle to parent or owner window HMENU hMenu, // menu handle or child identifier HINSTANCE hInstance, // handle to application instance LPVOID lpParam ); // window-creation data