【C++】关于引用类型学习记录

学习模板(泛型)的时候针对定义为引用类型有些费解

 1 class BigType {
 2     // 假设这里有大量的数据和复杂的操作
 3 };
 4 
 5 template <typename T>
 6 inline const T& Max(const T& a, const T& b) {
 7     return a < b ? b : a;
 8 }
 9 
10 int main() {
11     BigType obj1, obj2;
12     const BigType& maxObj = Max(obj1, obj2);
13     // 对maxObj进行操作
14     return 0;
15 }

上述中,无论是Max函数还是函数中的参数设置都定义为了引用类型,给人第一眼的感觉就是,看不懂。

查阅资料后得知,定义为引用类型的好处在于,需要对大量的数据进行操作的时候,一旦产生拷贝环节,会消耗大量的资源。

如上述代码所示,如果BigTye中有大量的数据,我们使用传值方式进行比较是,程序会将源数据拷贝一份后,再进行操作,而使用了引用类型则可以直接使用源数据进行比较操作,有效的减少了资源的浪费以及拷贝过程上的时间的浪费。

下述是传值方式:

1 template <typename T>
2 inline const T Max(const T a, const T b) {
3     return a < b ? b : a;
4 }

 

posted @ 2023-11-07 19:14  VanGoghpeng  阅读(29)  评论(0编辑  收藏  举报