Google C++编程风格指南

July 14, 2013
作者:Hawstein
出处:http://hawstein.com/posts/google-cpp-style-guide.html
声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。

前言

越来越发现一致的编程风格的重要性,于是把Google的C++编程风格指南看了一遍, 这里记录下于自己有益的rules。当规则有多个选择时,这里只记录个人习惯的用法, 并不代表它是唯一的用法。

Google Style Guide

Google开源项目风格指南

命名约定

命名管理是最重要的一致性规则,因此我把它放在最前面。

int num_errors; 
int num_completed_connections;
my_useful_class.cc
my_useful_class.cc
my_useful_class.h
// classes and structs
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...

// typedefs
typedef hash_map<UrlTableProperties *, string> PropertiesMap;

// enums
enum UrlTableErrors { ...
my_exciting_local_variable
my_exciting_member_variable_
struct UrlTableProperties {
	string name;
	int num_entries;
}
bool gInvalid = false;
const int kDaysInAWeek = 7;
AddTableEntry()
DeleteUrl()
class MyClass {
public:
    ...
    int num_entries() const { return num_entries_; }
    void set_num_entries(int num_entries) { num_entries_ = num_entries; }

private:
    int num_entries_;
};
void swap(int &a, int &b);
int max(int a, int b);
bool cmp(Type t1, Type t2);
namespace google_awesome_project {
	...
}
enum UrlTableErrors {
    kOK = 0,
    kErrorOutOfMemory,
    kErrorMalformedInput,
};
#define ROUND(x) ...
#define PI_ROUNDED 3.0