- 按值传递对象:在传递时候,会建立一个该对象的拷贝(调用复制构造函数);而从函数返回一个对象是,也要建立这个被返回的对象的一个拷贝。这样带来的内存开销非常大。
- 在传递的过程中会默认调用复制构造函数,创建一个临时某个对象的临时副本。
- 在函数返回时,传递该对象时创建的副本会被删除,这时候又会自动调用该对象的析构函数来释放内存。
- 将一个对象按值传递给一个函数,会调用两次复制构造函数和两次析构函数(一个给参数传值,一次返回值);
- 按址传递可以防止调用复制构造函数和析构函数,这样可以减小开销
- 按址传递对象:传递对象的实际地址,不用再创建对象,不会调用复制构造函数和析构函数,减小内存开销。
- 按址传递破坏了按值传递的保护机制,解决方式就是使用const指针
- 使用const指针可以防止任何试图对该对象所进行的操作行为,并且保证返回一个不被修改的对象。
C/C++ 按值传递对象和按址传递对象
最新推荐文章于 2024-04-15 23:42:18 发布