一切的一切,起源於同濟軟件工程期末的大項目----拿cocos2d作一個遊戲~~~數組
大項目是組隊制的,因此有了下面這篇 「大項目代碼風格」,函數
/*學習
如下爲本次大項目代碼風格規定
1. 類的命名用 大駝峯命名(每一個單詞首字母大寫)
普通變量小駝峯命名(第一個單詞首字母小寫,其他首字母均大寫)
類成員變量須要在名稱前加 m_
如 class SomeClass
{
private:
m_tableName; 類中變量命名
}
int tableName; 普通變量命名
函數的命名用 小駝峯 如 void someThing(){}
而且特定類型加特定前綴
布爾變量命名前加 b
指針命名前加 p
上面一概使用英文單詞(拒絕拼音),不縮寫,不省略單詞
2 不使用tab,只使用空格,空格2下縮進
3 花括號換行,同時花括號執行的代碼不管多簡單,都要加花括號
如if(some condition)
{
//your code
}
固然特別簡單語句能夠不換行
例如 if(i>1) { ++count; }
(其他狀況不換行均視爲邪教)
4 類定義必需要有構造函數,全部成員數據在此初始化
5 儘可能使用++i,而不使用i++(先弄清區別)
6 頭文件和源文件區別以及做用(這個很重要,不要全部東西都寫在一個文件中)
給個網址 http://blog.csdn.net/yue34257667/article/details/45500811
7 記得加頭文件保護符(固然vs在建立頭文件時已經自動加了)
8 容器選擇多使用 vector,string,少使用數組,要用數組也請用array
9 儘可能使用迭代器而不是下標運算符[],迭代器的判斷用!= 而不是 <=
例如
for(auto i=v.begin(); i!=v.end(); ++i)
{
//your code
}
也可使用範圍for語句遍歷容器
遍歷容器時不可修改容器數量
10 多使用const(這個要求比較高)
三種狀況
(1)常量的定義
(2)強制保護函數參數值不發生改變
如下程序中,函數f 不會改變輸入參數name 的值,可是函數g 和h 都有可能改變name的值。
void f(String s); // 值傳遞
void g(String &s); // 引用
void h(String *s); // 指針
int main()
{
String name=「Dog」;
f(name); // name 的值不會改變
g(name); // name 的值可能改變
h(name); // name 的值可能改變
return 0;
}
對於一個函數而言,若是其‘&’或‘*’類型的參數只做輸入用,不做輸出用,
那麼應當在該參數前加上const,以確保函數的代碼不會改變該參數的值(若是改變了該參數的值,編譯器會出現錯誤警告)。
所以上述程序中的函數g 和h 應該定義成:
void g(const String &s);
void h(const String *s);
(3)修飾類中的成員函數:void fun4()const; 其意義上是不能修改所在類的的任何變量。
11 數據類型不要混用(可能產生意想不到的後果)
如 int 和 unsigned
int n=-1;
if(string.size < n) { cout>>"you are wrong";}
//string.size()的返回類型是 unsigned
必然會輸出 you are wrong
由於int 和 unsigned 一塊兒使用會發生隱式轉換,int轉爲unsigned,-1 便轉爲 2^32-1
12 多瞭解面向對象思想(網上有許多blog,都說的很好)
給幾個推薦 http://blog.csdn.net/baggiowangyu/article/details/2724334
http://blog.csdn.net/wsyhok/article/details/54600637
來個知乎的 https://www.zhihu.com/question/19854505
ps:你們一塊兒學習,一塊兒加油!!!*/
.net
第一篇博客(不知道算不算博客)~~~指針