C++中向函数传递对象的三种方法

举报
努力变强的小C 发表于 2022/09/29 20:03:51 2022/09/29
1.1k+ 0 0
【摘要】 C++中向函数传递对象的三种方法

 文章目录

方法一、使用对象作为函数参数

方法二、使用对象指针作为函数参数

方法三、使用对象引用作为函数参数


使用对象作为函数参数

在C++中对象可以作为参数传递给函数,这种传递方式与传递其他类型的数据是一样的,并且在向函数传递参数时,是通过一种‘传值调用’的方法传给函数,所以函数中对对象的所有修改都不会影响该对象(实参)的本身

下面来看一个实际的例子

#include <iostream>
#include <string>
using namespace std;
class A {
	public:
		A(int a) {
			age = a;
		}
		int show_score() {
			return age;
		}
	private:
		int age;
};
void Func(A ob) {
	cout << ob.show_score();
}
int main() {
	A obj(18);
	Func(obj);
	return 0;
}

输出结果:18

使用对象指针作为函数参数

对象指针是可以作为函数的参数,当我们使用对象指针作为函数参数的时候,就可以实现传址调用,就是在函数调用的时候,将实参和形参的指针变量指向同一个内存地址,所以当函数的形参是对象指针的时候,我们调用该函数对应的实参应该是某个对象的地址值

下面举一个例子详细解释

#include <iostream>
#include <string>
using namespace std;
class A {
	public:
		A(int a) {
			age = a;
		}
		int show_score() {
			return age;
		}
	private:
		int age;
};
void Func(A *ob) {
	cout << ob->show_score();
}
int main() {
	A obj(18);
	Func(&obj);
	return 0;
}

输出结果:18

使用对象引用作为函数参数

在实际操作中使用对象引用作为函数的参数是非常普遍的,我们大部分都喜欢用对象引用取代对象指针作为函数的参数,这是因为使用对象应用的时候作为函数参数,不仅具有对象指针作函数参数的优点,而且这个对象的引用可以用作函数参数,会更简单更直接

#include <iostream>
#include <string>
using namespace std;
class A {
	public:
		A(int a) {
			age = a;
		}
		int show_score() {
			return age;
		}
	private:
		int age;
};
void Func(A &ob) {  //对象引用作为函数的形参
	cout << ob.show_score();
}
int main() {
	A obj(18);
	Func(obj);
	return 0;
}

输出结果:

18

在本道题中完全使用对象指针作为函数参数,但是与上面两个例子的结果是完全相同的,你们可以试着比较一下这几种函数参数在使用方面上的区别和异同,并自己决定以后使用哪种作为您的函数参数

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。