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