严以律己,宽以待人. 三思而后行. 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 杨粼波 阅读(710) 评论(0) 编辑 收藏 引用 所属分类: C++
Powered by: C++博客 Copyright © 杨粼波