C++学习体会--引用方式复制类对象
引用的重要性实际体现在函数的形参和函数的返回值。一般引用也只是出现在这两个地方。
引用方式的好处,如果是体现在形参,在使用函数的时候,实参必定会初始化形参,如果不加引用,系统会创建实参的副本将值传递给形参,这样会造成资源额外的占用。为了节省资源的占用,通过一种引用的方式,达到这个效果,因为引用知识将实参的地址给了形参,处理形参,如同处理实参。
下面将给出程序使用的例子:引用的重要性体现在形参上
#include <iostream> using namespace std; class CBox { private: double m_Length; double m_Width; double m_Height; public: CBox(double lv, double wv, double hv) : m_Length{ lv }, m_Width{ wv }, m_Height{ hv } { cout << "Constrcurtor called." << endl; } CBox(const CBox &initB) :CBox{ initB.m_Length, initB.m_Width, initB.m_Height }{ cout << " refrence called" << endl; } double volume() { return m_Length*m_Height*m_Width; } }; int _tmain(int argc, _TCHAR* argv[]) { CBox box1( 10.0, 10.0, 10.0 ); CBox mybox(box1);// mybox{box1};相同 cout << "Volume of box1=" << box1.volume() << endl; cout << "Volume of mybox=" << mybox.volume() << endl; return 0; }
结果:
分析:
CBox box1( 10.0, 10.0, 10.0 ); CBox mybox(box1);1.这两句的类定义,会自动调用构造函数,在类声明中可以看到每次调用构造函数时,会显示Constrcurtor called .2.因为定义mybox()以box1作为实参,不是为box1创建副本,而是通过引用的方式传递给形参,成功通过引用的方式时,将会出现refrence called
原文地址:https://www.cnblogs.com/pans0ul/p/9465451.html
时间: 2024-09-28 18:16:32