工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++関数でのオブジェクトの渡し方と返し方

C++関数でのオブジェクトの渡し方と返し方

このチュートリアルでは、C++でオブジェクトを関数に渡し、関数からオブジェクトを返す方法を、実践的な例とベストプラクティスとともに解説します。

例1: オブジェクトを関数に渡す

// 2人の学生の平均点を計算するC++プログラム
#include <iostream>
using namespace std;

class Student {
public:
    double marks;
    // 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

ここでは、2つの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)を用いて不要なコピーを回避します。

ベストプラクティス

C言語

  1. サプライチェーンを守る:サイバー犯罪、自然災害などへの対抗戦略
  2. 3Dプリントの3つの必須ステージ:準備・造形・仕上げ
  3. C# クラスとオブジェクト:堅牢な OOP の基礎
  4. C++クラスとオブジェクト完全ガイド:オブジェクト指向プログラミングの実践
  5. C++メモリ管理の極意:newとdeleteのエキスパート活用法
  6. C++ public/protected/private継承の違いを徹底解説
  7. C++フレンド関数とフレンドクラス:アクセス制御のマスター
  8. C言語: アドレスとポインタを関数に渡す – 実践ガイド
  9. C++関数を実例で徹底解説:基本から応用まで
  10. C++日付と時刻の完全ガイド:ctimeライブラリの活用
  11. C++オーバーロード完全マスター:関数と演算子のオーバーロード