摘要:
注釋的本質是幫助別人和幫助自己更好的理解代碼,不是炫耀英文或中文水平。
錯誤的語法,錯誤的拼寫給他人帶來困惑與不快,寧愿不寫,不可亂寫。 閱讀全文
摘要: 迭代的側重點在于如何向結果靠近;遞歸的側重點在于如何分解到原點。 閱讀全文
摘要: Linux平臺延時之sleep、usleep、nanosleep、select比較 閱讀全文
摘要: Ubuntu下pdf亂碼和無效文件編碼解決方案 閱讀全文
摘要: CMake是一個跨平臺的編譯構建系統,本文是Cmake入門實例。 閱讀全文
1.一致性原則
無論是采用駝峰命名法或者匈牙利命名法都可以,但是在項目中一定保持一致的風格,一致帶來的好處不言而喻。
2.不要輕易使用縮寫
除非該縮寫在其他地方使用非常普遍,否則不要創造縮寫。
3.枚舉和常量命名加前綴”k”
PImpl(private implementation) 其主要作用是解開類的使用接口和實現的耦合。
一個很簡單的實現如下:
頭文件中:
1 class CSample
2 {
3 private:
4 class CImpl;
5 shared_ptr<CImpl> mp;
6
7 public:
8 CSample();
9
10 void print();
11 };
實現文件中:
1 class CSample::CImpl
2 {
3 public:
4 void doPrint()
5 {
6 cout << "impl print" << endl;
7 }
8 };
9
10 CSample::CSample() : mp(new CImpl)
11 {}
12
13 void CSample::print() { mp->doPrint(); }
類CSample僅向外界暴露了最小的接口,真正的實現由其內部類CImpl來完成。這樣無論CImpl如何修改,外界對此一無所知,從而保持接口的不變性。這種方式的另外一個好處是減少了頭文件之間的依賴關系。
上面的代碼里,我使用了boost的shared_ptr來管理指針,簡化代碼。
關于PImpl的更多資料和信息可以參考如下鏈接:
1.
PImp的原理2.
PImpl your C++ code3.
the C++ PImpl
環境:Ubuntu
10.04 + MilkShape 1.8.4 + Wine 1.2
方法:
1)在dll-files.com上下載msvcirt.dll, 注意是msvcirt.dll而不是msvcrt.dll.
2)在dlldump.com上下載mfc42.dll
3) 將上述兩個dll拷貝到system32目錄下和Milkshape的安裝目錄下(ms3d.exe所在的目錄)
4)使用wine運行之
各位請看下面的代碼
1 struct A {};
2
3 struct B
4 {
5 public:
6 B(){}
7 B(A& a){}
8 };
9
10 struct B1 : public B
11 {
12 public:
13 B1(const B& b) : B(b)
14 {}
15 };
16
17 int main()
18 {
19 A a;
20 B1 b1(a);
21
22 return 0;
23 }
上面的代碼可以編譯通過(gcc和vs2005下均測試通過),但是如果我將第13行的const修飾符去掉,編譯就不能通過,報錯說沒有匹配的函數,請問各位高手這是為什么?望指教。
錯誤: call
to OpenGL ES API with no current context
可能的原因:OGL
ES所在的線程被阻塞或者被掛起,導致渲染設備上下文丟失。
解決方案:將可能導致渲染線程被阻塞或被掛起的代碼移動到別處。比如在渲染循環之前執行或之后執行。