2013年4月2日 星期二

[C++] 最近碰到的問題

最近在寫論文的模擬實驗
用的是OMNet++ 使用的語言是C++
結果碰到了一些C++的問題
總覺得寫太久JAVA對C++掌握度變好低阿

之後再把問題補上來

  • external const

            參考
一個global的const variable 另一個檔案不能直接extern來用
因為在C++ 只要宣告const就是internal linkage 也就是只能在同一個編譯單元(檔案)來使用
所以即使加extern了也沒辦法使用 只能寫到.h檔 在include來使用囉

  • constructor call constructor

大概是受JAVA影響 
總覺得應該是很直覺的
沒想到在C++不能在constructor裡面call 另一個constructor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
所以如果有共同的建構子部分 只好取出來另寫一個fucntion呼叫
但事實上你可以call 另一個constructor
但會發現他會蓋掉另一個constructor的初始化結果
不同的constructor 可能會產生一個自己的物件吧(我猜測)

參考

    • new (this) ClassName()

參考 或是 這篇更好 new 的 (cpp reference)在查上面的stackoverflow看到的 new的另一種用法
大一時 介紹到了new和operator new
差別主要在new會呼叫建構子 operator new只會分配記憶體 不會呼叫建構子
但沒想到(或是忘了?) 還有上面那種用法 只會呼叫建構子
看第二個參考資料的範例就會很明白了
new =   operator new + new (this) ClassName() 
應該可以這樣說吧

沒有留言:

張貼留言