嚴以律己,寬以待人. 三思而后行. GMail/GTalk: yanglinbo#google.com; MSN/Email: tx7do#yahoo.com.cn; QQ: 3 0 3 3 9 6 9 2 0 .
1.?變量作用域 在vc7.1中, 如果一個變量定義在for語句的條件從句中,那么這個變量可以在for之后使用。但Vc8禁止這樣,會報告一個C2065錯誤.
解決方法:在for語句之前聲明變量(可保證代碼在vc7.1和vc8下同時編譯通過)
2.?指針和引用的聲明 在Vc7.1中, 下面的代碼可以編譯, 但是vc8會報C4430 錯誤。(很難想象有些美國程序員竟然這樣聲明)
解決方法:把* 或&放到類型的后面.
3.?默認int類型 在vc7.1中,如果定義一個變量但不聲明類型,那么默認為int。VC8不支持。
解決方法:加上int.
4.?函數的默認返回值類型 同上,VC8不支持把 int 作為默認返回值類
解決方法:明確聲明函數返回值類型為 int.
5.?函數地址 Vc7中函數名就是地址。在vc8中,必須要使用&操作符同時寫出這個方法的全名(fully qualified name).
解決方法:加上 &.
6.?隱式類型轉換 VC8不允許B* 到const B*&的隱式轉換.
解決方法:強制轉換或函數參數變成const B*。
7.?友元方法(Friend function) VC8不允許聲明一個private或protected函數為友元.
解決方法 1:聲明友元類.
解決方法 2:把函數聲明為public
8.?STL的stdext 命名空間 在vc8中,hash_map 和hash_set 被移進了stdext命名空間中.
解決方法:使用stdext 命名空間.
9.?頭文件 許多頭文件如fstream.h 和iostream.h在VC8中已經不存在了.
解決方法:使用STL.
10.?Iterator 一些 STL 類, iterators 不再用指針實現
解決方法:
11.?Enum 使用一個Enum的成員時,不要使用enum的名字
解決方法:去掉Enum 的名字.
posted on 2006-09-24 19:10 楊粼波 閱讀(714) 評論(0) 編輯 收藏 引用 所屬分類: C++
Powered by: C++博客 Copyright © 楊粼波