亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ 函数中传递和返回对象的完整指南

C++ 函数中传递和返回对象的完整指南

本教程通过实例和最佳实践,详细讲解如何在 C++ 函数中传递对象以及从函数返回对象。

示例 1:向函数传递对象

// C++ 程序:计算两名学生的平均分
#include <iostream>
using namespace std;

class Student {
public:
    double marks;           // 成绩
    // 构造函数初始化成绩
    Student(double m) : marks(m) {}
};

// 函数接受两个 Student 对象作为参数(按值传递)
void calculateAverage(Student s1, Student s2) {
    double average = (s1.marks + s2.marks) / 2.0;
    cout << "Average Marks = " << average << endl;
}

int main() {
    Student student1(88.0), student2(56.0);
    calculateAverage(student1, student2);
    return 0;
}

输出

Average Marks = 72

此处我们将两个 Student 对象 student1 和 student2 按值传递给 calculateAverage()。按值传递会创建对象副本;如果对象较大,建议改用引用传递以避免不必要的拷贝开销。

C++ 函数中传递和返回对象的完整指南

示例 2:从函数返回对象

#include <iostream>
using namespace std;

class Student {
public:
    double marks1, marks2;
};

// 返回 Student 对象的函数
Student createStudent() {
    Student student;
    student.marks1 = 96.5;
    student.marks2 = 75.0;
    cout << "Marks 1 = " << student.marks1 << endl;
    cout << "Marks 2 = " << student.marks2 << endl;
    return student; // 编译器会应用 NRVO 优化拷贝
}

int main() {
    Student student1;
    student1 = createStudent();
    return 0;
}

输出

Marks 1 = 96.5
Marks 2 = 75
C++ 函数中传递和返回对象的完整指南

函数 createStudent() 构造一个 Student 实例,打印其成员值并返回。在 main() 中,返回的对象被赋值给 student1。现代编译器会采用返回值优化(RVO/NRVO)来消除不必要的拷贝,提升性能。

最佳实践提示

C语言

  1. 筑牢供应链防线:应对网络犯罪、自然灾害等风险的策略
  2. 3D打印三大核心阶段详解
  3. C# 类与对象:面向对象编程的基石
  4. C++类与对象:面向对象编程实战指南
  5. C++ 动态内存管理:new 与 delete 专家级实战指南
  6. C++ 三种继承方式深度解析:public、protected 与 private
  7. C++ 友元函数与友元类:突破访问控制的利器
  8. C语言函数参数传递:地址与指针实战指南
  9. C++ 函数详解:从声明到调用的实战指南
  10. C++日期时间完全指南:ctime库、tm结构体与格式化输出
  11. C++重载机制深度解析:函数重载与运算符重载全攻略
  12. C++文件I/O完全指南:fstream读写、打开模式、定位指针与完整实例