🌞main関数内で🌞オブジェクト宣言されたオブジェクトを 🌞main関数の外で定義された🌞クラスのメンバ関数の引数に代入するとオブジェクトの格納しているデータだけが💖値渡し💖されます

自作関数の引数にオブジェクト宣言を設定することができます

ソーラー「つづいては


自作関数の引数にオブジェクト宣言を設定してみましょう


自作関数の実行時


引数となっているオブジェクト宣言


には


別のオブジェクトが代入できるようになります


次のプログラムをご覧ください」


#include <iostream>


using namespace std;


class Cube {


public:

int no;

public:

float tate;

public:

float yoko;

public:

float takasa;

public:

void display();


};


void Cube::display() {


cout << "立方体につけられたナンバーは" << no << "です" << "\n";

cout << "立方体の縦の長さは" << tate << "です" << "\n";

cout << "立方体の横の長さは" << yoko << "です" << "\n";

cout << "立方体の高さの長さは" << takasa << "です" << "\n";


}


void Cubedata2baihyouji(Cube a)

{

a.no = 2 * a.no;

a.tate = 2 * a.tate;

a.yoko = 2 * a.yoko;

a.takasa = 2 * a.takasa;


cout << "立方体につけられたナンバーは" << a.no << "です" << "\n";

cout << "立方体の縦の長さは" << a.tate << "です" << "\n";

cout << "立方体の横の長さは" << a.yoko << "です" << "\n";

cout << "立方体の高さの長さは" << a.takasa << "です" << "\n";


return;

}

//👆クラスCubeのメンバ関数でない普通の自作関数Cubedata2baihyoujiの定義をおこなっています


int main() {


Cube cube1;


//👆cube1のクラスCube型のオブジェクト宣言をおこなっています


cube1.no = 1;

cube1.tate = 2.0;

cube1.yoko = 3.0;

cube1.takasa = 4.0;


cube1.display();


Cubedata2baihyouji(cube1);


return 0;

}




ビルド実行結果


立方体につけられたナンバーは1です

立方体の縦の長さは2です

立方体の横の長さは3です

立方体の高さの長さは4です

立方体につけられたナンバーは2です

立方体の縦の長さは4です

立方体の横の長さは6です

立方体の高さの長さは8です


ソーラー「このプログラムでは


main関数内で


cube1のクラスCube型のオブジェクト宣言


Cube cube1;


が実行されて


オブジェクトcube1が作製されています。


そして


生成される


オブジェクトcube1のメンバ変数


cube1.no

cube1.tate

cube1.yoko

cube1.takasa     


cube1.no = 1;

cube1.tate = 2.0;

cube1.yoko = 3.0;

cube1.takasa = 4.0;


と数値データ


1

2.0

3.0

4.0


が代入されています。」


マックス「ここまでは今までのエピソード通りだな😊


簡単~簡単」


ソーラー「では・・・


自作関数の定義に戻って


自作関数の定義


void Cubedata2baihyouji(Cube a)

{

a.no =2*a.no;

a.tate =2* a.tate;

a.yoko=2* a.yoko;

a.takasa =2* a.takasa;


cout << "立方体につけられたナンバーは" << a.no<< "です" << "\n";

cout << "立方体の縦の長さは" << a.tate << "です" << "\n";

cout << "立方体の横の長さは" << a.yoko << "です" << "\n";

cout << "立方体の高さの長さは" << a.takasa << "です" << "\n";


return;

}



void Cubedata2baihyouji(Cube a)


の部分をみてよ


引数の部分に


aのクラスCube型のオブジェクト宣言


Cube a


が実行されています。😊



main関数内で


cube1のクラスCube型のオブジェクト宣言


Cube cube1;


の実行後



自作関数Cubedata2baihyoujiの引数の


Cube aにcube1が代入された


Cubedata2baihyouji(cube1);


が実行される際


        この引数となっている部分の


       クラスCube型のオブジェクト宣言

            

            Cube aの               



          🍓オブジェクトaには🍓


cube1のクラスCube型のオブジェクト宣言


Cube cube1;


で作製された


            🍋オブジェクトcube1🍋


が代入されています。」


マックス「自作関数


           🐤Cubedata2baihyouji(cube1);🐤


が実行される際


          この引数となっている部分の


          aのクラスCube型のオブジェクト宣言

            

            Cube a


             の


         🍓オブジェクトaに🍓


cube1のクラスCube型のオブジェクト宣言


Cube cube1;


で作製された


            🍋オブジェクトcube1🍋


が代入されている???




            🍓main関数内で🍓


Cube cube1;


で作製された


            オブジェクトcube1



         🍅自作関数void Cubedata2baihyouji(Cube a)🍅


の引数となっている


aのクラスCube型のオブジェクト宣言


Cube aにより


作製される


オブジェクトaに代入されている・・・・・



            🍓main関数内で🍓


             Cube cube1;


で作製された


            オブジェクトcube1


   🍅自作関数void Cubedata2baihyouji(Cube a)🍅


の引数となっている


aのクラスCube型のオブジェクト宣言

 


             Cube aにより



作製される


        オブジェクトaに代入されている・・・・・



なんか


っどっかで・・・


main関数で・・・・・と


自作関数・・・・・か?


どっかで出会ったことあるような・・・


きのせいか にゃはは😺」





  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る