在C++中,我们可以将类的对象作为参数传递,还可以像传递和返回其他变量一样从函数中返回它们;且不需要特殊的关键字或头文件。下面本篇文章就来带大家了解一下,希望对大家有所帮助。

1、将对象作为参数传递

要将对象作为参数传递,我们将对象名作为参数写入,同时调用函数,方法与对其他变量执行是相同的。

基本语法:

函数名(对象名);

示例:

#include <bits/stdc++.h> using namespace std;   class Example { public:     int a;       // 此函数将对象作为参数    void add(Example E)     {         a = a + E.a;     } }; int main() {       // 创建对象    Example E1, E2;       // 两个对象的值都已初始化    E1.a = 50;     E2.a = 100;       cout << "初始值 \n";     cout << "对象1的值: " << E1.a          << "\n对象2的值: " << E2.a          << "\n\n";       // 将对象作为参数传递给函数add()    E2.add(E1);       // 传递给函数add()后    cout << "新值 \n";     cout << "对象1的值: " << E1.a          << "\n对象2的值:" << E2.a          << "\n\n";       return 0; }

输出:

初始值对象1的值:50对象2的值:100新值对象1的值:50对象2的值:150

说明:在此示例中,有一个类具有一个整型变量“a”和一个以对象为参数的函数“add”。该add()函数由一个对象调用,另一个对象作为参数。在函数内部,将参数对象的整数值添加到调用'add'函数的整数值中。在这个方法中,我们可以将对象作为参数传递并更改它们;

注:add函数不返回任何值,因为其返回类型为void。

2、将对象作为参数返回

基本语法:

object = return object_name;

示例:add函数返回“example”类型的对象(即类名),该对象的值存储在E3中。

#include <bits/stdc++.h> using namespace std;   class Example { public:     int a;       // 此函数将以对象为参数并返回对象    Example add(Example Ea, Example Eb)     {         Example Ec;         Ec.a = Ec.a + Ea.a + Eb.a;           // 返回对象        return Ec;     } }; int main() {     Example E1, E2, E3;       // 两个对象的值都已初始化    E1.a = 50;     E2.a = 100;     E3.a = 0;       cout << "初始值 \n";     cout << "对象1的值: " << E1.a          << " \n对象2的值: " << E2.a          << "\n对象3的值: " << E3.a          << "\n\n";       //将对象作为参数传递给函数add()。    E3 = E3.add(E1, E2);       // 将对象作为参数传递后更改的值    cout << "新值 \n";     cout << "对象1的值: " << E1.a          << " \n对象2的值: " << E2.a          << " \n对象3的值: " << E3.a          << "\n";       return 0; }

输出:

初始值对象1的值:50对象2的值:100对象3的值:0新值对象1的值:50对象2的值:100对象3的值:200

说明:在这个例子中,我们可以看到两个方面,即我们如何传递对象以及返回它们。当对象E3调用add函数时,它传递另外两个对象,即E1和E2作为参数。在函数内部,声明了另一个对象,它计算所有三个变量的总和并将其返回给E3。

相关视频教程推荐:《C++教程》

更多相关文章

  1. C++ vector容器函数使用范例
  2. C#学习之面向对象如何调用类以及普通方法、静态方法的使用
  3. 什么是虚函数
  4. C++学习之new()和malloc()函数
  5. srand(time(null))函数是什么意思
  6. srand(time(0))函数是什么意思
  7. malloc函数的用法
  8. c语言定义函数
  9. memcpy函数用法

随机推荐

  1. 使用谷歌地图computeDistanceBetween获取
  2. ajax请求中URL和参数的编码问题
  3. 在KENDO UI Multiselect中选择默认值
  4. 在jQuery datetimepicker中禁用特定时间
  5. 桌面视图中的SlikNav多级菜单?
  6. 显示json数组中的所有项目
  7. 图表。js数据数组使用PHP, MySQL。如何从
  8. Regexp exec列表的url由昏迷“,*”分隔
  9. JavaScript 最佳实践:帮你提升代码质量
  10. Vue js v-bind不工作?