参数传递
- 函数参数传递尽量使用 pass by reference 。传的快。如果是类似 int 的类型就不需要了。如果不希望被改变,加上 const 。
class A {
private:
int a, b, c, d;
public:
A(int q, int w, int e, int r) : a(q), b(w), c(e), d(r) {
...
}
};
void foo(A& value) { //foo(const A& value) 变量不会被改变,加上 const
...
}
A tmp(1,2,3,4);
foo(tmp);
- 函数返回值尽量使用 pass by reference。如果是类似 int 的类型就不需要了。
class A {
private:
...
public:
A& operator += (const A) {
...
return *this;
}
};
- pass by reference 特性:传递者无需知道接收者是以什么方式接收
// 注意,函数中的 return *th ,这个 th 是由 A& 来接收的。
inline A&
foo(A* th, const A& r) {
...
return *th;
}
文件声明文件声明文件声明