原文: https://beginnersbook.com/2017/09/cpp-pass-and-return-object-from-a-function/

在本教程中,我们将了解如何将对象作为参数传递给函数以及如何从函数返回对象。

将对象传递给函数

可以将对象传递给函数,就像我们将结构传递给函数一样。在A类中,我们有一个函数disp(),我们在其中传递类A的对象。类似地,我们可以将一个类的对象传递给不同类的函数。

  1. #include <iostream>
  2. using namespace std;
  3. class A {
  4. public:
  5. int n=100;
  6. char ch='A';
  7. void disp(A a){
  8. cout<<a.n<<endl;
  9. cout<<a.ch<<endl;
  10. }
  11. };
  12. int main() {
  13. A obj;
  14. obj.disp(obj);
  15. return 0;
  16. }

输出:

  1. 100
  2. A

从函数返回对象

在这个例子中,我们有两个函数,函数input()返回Student对象,disp()Student对象作为参数。

  1. #include <iostream>
  2. using namespace std;
  3. class Student {
  4. public:
  5. int stuId;
  6. int stuAge;
  7. string stuName;
  8. /* In this function we are returning the
  9. * Student object.
  10. */
  11. Student input(int n, int a, string s){
  12. Student obj;
  13. obj.stuId = n;
  14. obj.stuAge = a;
  15. obj.stuName = s;
  16. return obj;
  17. }
  18. /* In this function we are passing object
  19. * as an argument.
  20. */
  21. void disp(Student obj){
  22. cout<<"Name: "<<obj.stuName<<endl;
  23. cout<<"Id: "<<obj.stuId<<endl;
  24. cout<<"Age: "<<obj.stuAge<<endl;
  25. }
  26. };
  27. int main() {
  28. Student s;
  29. s = s.input(1001, 29, "Negan");
  30. s.disp(s);
  31. return 0;
  32. }

输出:

  1. Name: Negan
  2. Id: 1001
  3. Age: 29