一直没有一个确切的概念: 什么时候 传递参数时才应该使用 const T &.
只知道 传递大的对象时, 为了避免临时变量 生成 及copy, 使用 const T & rhs. 但是多大的对象才算是大对象呢? 如果类中只有一个 char c 成员变量 , 需不需要?
还有, 之前在哪看到过 & 是用指针实现的(不知道对不对, 先假设是这样), 如果 指针 是 4字节的话, 是不是 凡是 小于4字节的类型 就不应该 const T &, 而直接 T ,
像这样:
int Fn (short size);
int Fn (char c);
如果是这样的话, 那 double 类型呢? sizeof (double) >= sizeeof (void *)
应该是除了占用 空间之外 还要考虑 临时变量的建立之类的吧.
但是难道就没有一个标准吗?
凡是 内建类型 就 T, 自定义类型就 const T & ?
如果是这样的话, 如果 我对 char 也使用 const,
像这样传递, const char & c , 性能 什么的会有什么影响 ?
请大家指点.. 谢.
只知道 传递大的对象时, 为了避免临时变量 生成 及copy, 使用 const T & rhs. 但是多大的对象才算是大对象呢? 如果类中只有一个 char c 成员变量 , 需不需要?
还有, 之前在哪看到过 & 是用指针实现的(不知道对不对, 先假设是这样), 如果 指针 是 4字节的话, 是不是 凡是 小于4字节的类型 就不应该 const T &, 而直接 T ,
像这样:
int Fn (short size);
int Fn (char c);
如果是这样的话, 那 double 类型呢? sizeof (double) >= sizeeof (void *)
应该是除了占用 空间之外 还要考虑 临时变量的建立之类的吧.
但是难道就没有一个标准吗?
凡是 内建类型 就 T, 自定义类型就 const T & ?
如果是这样的话, 如果 我对 char 也使用 const,
像这样传递, const char & c , 性能 什么的会有什么影响 ?
请大家指点.. 谢.


