参数传递

参数传递

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容