参数传递

参数传递

  • 函数参数传递尽量使用 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;
}

文件声明文件声明文件声明

你可能感兴趣的:(参数传递)