您的位置:首页 > 娱乐 > 八卦 > 直销软件开发商价格_nba最新排名情况_seo最新技巧_b站2023年免费入口

直销软件开发商价格_nba最新排名情况_seo最新技巧_b站2023年免费入口

2025/6/30 8:37:47 来源:https://blog.csdn.net/m0_74317206/article/details/146351902  浏览:    关键词:直销软件开发商价格_nba最新排名情况_seo最新技巧_b站2023年免费入口
直销软件开发商价格_nba最新排名情况_seo最新技巧_b站2023年免费入口

在 C++ 里,对象作为函数的参数和返回值,有值传递、指针传递和引用传递这三种传递方式,下面为你详细介绍。

1.值传递

在值传递时,把实参对象的值复制给形参对象,函数会接收实参的一个副本,而非实参本身。函数内对形参的修改不会影响到实参。

#include <iostream>
using namespace std;
class MyClass {
public:int value;MyClass(int val) : value(val) {}
};// 值传递
void modifyValue(MyClass obj) {obj.value = 20;
}int main() {MyClass obj(10);modifyValue(obj);cout << "Value after modification: " << obj.value << endl; // 输出 10return 0;
}

 但是对象占用内存都比较大,一般都不传对象本身,而改为传对象引用或者对象指针。

2.指针传递

指针传递时,函数接收的是实参的地址。通过指针,函数能够直接修改实参对象。

#include <iostream>
using namespace std;
class MyClass {
public:int value;MyClass(int val) : value(val) {}
};// 指针传递
void modifyValue(MyClass* objPtr) {if (objPtr != nullptr) {objPtr->value = 20;}
}int main() {MyClass obj(10);modifyValue(&obj);cout << "Value after modification: " << obj.value << endl; // 输出 20return 0;
}

3.引用传递

函数接收的是实参的引用,也就是实参的别名。函数内对引用的修改会直接影响到实参。

使用对象引用作为函数参数最常见,它不但有指针作为参数的优点,而且比指针作为参数更简单、更方便。 

#include <iostream>
using namespace std;
class MyClass {
public:int value;MyClass(int val) : value(val) {}
};// 引用传递
void modifyValue(MyClass& objRef) {objRef.value = 20;
}int main() {MyClass obj(10);modifyValue(obj);cout << "Value after modification: " << obj.value << endl; // 输出 20return 0;
}

4.三种传递方式比较

从代码效率上看,用对象值传递的方式的效率相对低一些,它需要创建新的对象来接收实参传来的值,用指针或者引用效率更高。

值传递较为安全,不会影响原始对象;指针传递和引用传递能直接修改原始对象,不过使用指针时需要注意空指针的情况。引用比指针使用起来更加简洁,方便,在C++中更常用。当然如果实参数据不能被修改,可以(应该)在前面加上const所以一般更建议用引用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com