WEB开发网
开发学院软件开发C++ C++初级之常见编译错误 阅读

C++初级之常见编译错误

 2010-11-02 09:03:36 来源:WEB开发网   
核心提示:1. 没有包含相关的头文件,比如类的头文件,C++初级之常见编译错误,如果仅仅使用类或是结构体来声明变量,那么仅仅需要预声明类和结构体(如class +类名)即可;但是如果使用了类的成员函数或是结构体的成员函数,8. 使用他人的库,也只需要修改makfile的动态库路径,必须包含相关的头文件,对于类的头文件

1. 没有包含相关的头文件,比如类的头文件。如果仅仅使用类或是结构体来声明变量,那么仅仅需要预声明类和结构体(如class +类名)即可;但是如果使用了类的成员函数或是结构体的成员函数,必须包含相关的头文件。对于类的头文件,应该尽可能少的包含其他的头文件。原因在于,头文件是让别人使用的。没有必要让使用者因包含该头文件,而同时又包含其他没有必要的头文件。因此,在头文件中多使用预声明,或是名字空间内的预声明。没有在名字空间中定义的结构体和类,直接使用class struct声明,对于名字空间中定义的结构体和类,使用namespace name_space

{

  class name;

  struct name;

}

当时,预声明的只能是class/struct,对于使用typedef定义的名字是无法预声明的,当然这是完全可以避免使用的,自己重新typedef

2. 拼写错误:大小写出错、字母顺序颠倒等。这是一个低级错误,当出头与头文件无关时,应优先检查是否拼写错误或是大小写错误。

3. Editer乱码现象。如果时使用其他的编辑器,应注意这个问题。当错误出现在在第一个字符时,只能copy整个可见的文件。这样的错误,编译器会提示:符号不能识别。

4. (27日)类型强制转换。C++有严格的类型检查,在函数的参数传递过程中,一定要保证参数的类型一致(这里的一致:不仅包括参数的类型,也要求const一致)。一般,如果要使用变量的类型强制转换,尽量把强制转换的结果先存在与另一个变量中,在把新变量作为参数传给函数。也就是类型强制转换尽量不要放在传递参数的时候!一般类型强制转换用于指针之间比较多,尤其是基类和派生类指针之间。

5. 对象传递。C++允许用户将派生类对象传递给基类类型的形参;但是反之则不行:基类对象不能传递给派生类的形参!注意这指的是类对象间的传递。对于指针并没用这样的限制。所有的指针仅仅是类型不一样,本质上都是一个指向内存地址的整型数。

6. (0803)多分号少分号。在类定义、结构体定义的时候,分号是必不可少的,内部的语句和都需要。上面文检查就可以找到。在if语句后面一定不要有分号,否则后面的语句就会总被执行。这样的错误只要在执行时才会被发现。函数体{}不需要分号,只要类,结构体等的定义的{}后面才需要加分号。

7. 使用他人的头文件,仅仅需要修改makefile文件中的头文件路径,使能够找到就可以了。

8. 使用他人的库,也只需要修改makfile的动态库路径。

9. 名字空间的使用:如想使用名字空间内的结构体或是类,有两种使用办法:

1) typedef name_space::classname newname;(必须包含头文件)

2) namespace name_space

{

class name;

struct name;

1 2  下一页

Tags:C++初级 编译错误

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接