在Windows Embedded CE開發Native C++時一個繼承的誤用

來源:互聯網
上載者:User

這幾天一直查一個Wince上的問題,其實和Windows Mobile和Windows Embedded Ce關係不大,但是找到原因也blog下來。

 

我在增加一個新功能,同時修改了設計,把代碼重構了,把一個資料成員的對象從子類pull up到父類。從原先的private改成protected。我測試代碼,一切正常。可是由於某種原因My Code是基於tag的基礎上開發的,當我commit代碼的時候,需要重新switch到branch,然後merge代碼。

 

但是自從switch以後,代碼運行不正常,開始以為項目配置的原因,因為代碼原先是正常的,查了一段時間,我把所有該對象的建構函式全部列印出來,發現同一個物件建構了兩次,找到了原因,原因我在switch和merge的時候svn重新把該對象定義的代碼放回子類,也就是同一個名字的對象給定義了兩次,導致代碼運行不正常。

 

經驗教訓:

以後對版本管理要更加小心,我在提交了上一個版本的基礎上就著手開發,所以使用了tag,而不是branch。哪怕做錯了,merge版本的時候要小心,不能相信svn的merge功能。

做c++要比c#小心,同樣重複定義變數的情況c#在編譯時間會報錯,可是c++不會。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.