2.10 常见编程错误(4)

2013-10-07 15:30:02 · 作者: · 浏览: 79

2.10   常见编程(www.cppentry.com)错误(4)

上述代码的最后一条语句是错误的,它不能完成字符串合并操作,这是因为C风格字符串是由其第一个字符的地址决定,而对地址实施加法操作是非法的。

25. 对于string类型的下述函数:erase、insert、replace和substr等,传给他们的第一个参数不能大于或等于字符串的长度:

 

超出长度范围的错误长度将导致程序异常终止,尽管通过例外处理可以捕捉到这些错误。

26. 调用一个未声明的函数是非法的,例如,

 
在main之前定义swap可避免这种错误:
 
在main之前或者之中声明swap亦可:
 
 
27. 因为调用未声明的函数是非法的,所以每个系统函数也必须先声明。通常,通过包含相应的标准头文件(如iostream)可获得该声明,因为标准头文件包含了系统函数的声明。代码
 

是错误的,因为sqrt没有声明。加入包含sqrt声明的头文件cmath可以改正该错误。

28. 函数声明

由于f没有参数,因此下面的程序段是错误的: