c++函数设计(3)之对return语句的正确性和效率进行检查



在函数体的 “出口处” ,对return语句的正确性和效率进行检查

注意事项如下:

(1) return 语句不可返回指向“栈内存”的“指针”或者“引用”(即函数的局部变量),因为该内存在函数体结束时被自动销毁

[cpp] view plaincopy


  1. char * Func(void)
  2. {
  3.     char str[] = “hello world”; // str 的内存位于栈上
  4.     return str; // 将导致错误
  5. }

(3) 如果函数返回值是一个对象,要考虑return 语句的效率。

  1. return String(s1 + s2);
  2. //直接创建一个临时对象并返回它
  3. //效率比较高
  4. String temp(s1 + s2);
  5. return temp;
  6. //先创建一个局部对象temp,之后使用一个临时对象接收它,最终返回它的结果
  7. //效率低下