今天一同事閑時看了一些C++代碼,於是問我 new 一個類型時後面加括弧和不加括弧有什麼區別?如下: A* test1 = new A A* test2 = new A( ) 我竟一時答不上來。 後來查閱了一些資料,整理出一些結論,正確與否,還需認證。 對於自訂的類型,兩種寫法是一致的。而對於內建類型,區別在於調用的建構函式不一樣,例如: int* a = new int ; // a 的值不確定 int* b
半年前閱讀的Effective C++ , 讀後深感其內容之精彩。而作為該書的系列讀物,More Effective C++ 同樣是不可多得的書籍。 相對於 Effective C++ 內容的篇幅,More Effective C++ 所介紹的技術較為詳細深入些,同時難度也相應增加了,以至於我在閱讀的時候往往力不從心,深感自己對C++的領悟過於表面而粗糙。 Effective C++ 多關注於技術的細節,而More Effective C++
變數的定義用於為變數分配儲存空間,還可以為變數指定初始值,變數有且僅有一個定義。聲明用於向程式表明變數的類型和名字。定義也是聲明。可以通過extern關鍵字聲明變數名而不定義它。extern int i; 不是定義,不會分配儲存空間。變數可以聲明多次。當聲明也是定義時,聲明才可以有初始化式。extern int i = 1; 可被當作是定義,分配並初始化了儲存空間。double i; //error 隨後的該變數定義都是錯誤的
由於c#是由設計.net本身的人設計出來的,所以c#才是.net上最一流的語言。實際上,已經有一百多萬行c#代碼用於實現.Net class framework。要發揮出.net平台全部的效能,只有c#才是首選。1,switch語句可以用來測試string型的對象這在c,c++,java等其他各主流語言中都是不可以的,唯獨c#可以。例如string a="haha";switch(a){ case "dfj": ... break; case "djkfdjkf":
論壇上經常有人問到這樣兩個問題:如何使用C#在Windows Mobile上編寫一個像Windows服務一樣的背景程式;如何使用C#在Windows Mobile上編寫“今日”螢幕外掛程式(Today plug-in); Peter Nowaks 的部落格文章creating Managed Services in Windows Mobile by using .NET Compact Framework. 他為此編寫了一套類庫,你可以在 CodePlex上找到。Christopher