オブジェクトのメンバ関数が実行される様子を観察してみよう

ソーラー「


#include <iostream>


using namespace std;


class Cube {


public: // (アクセス指定子)


int no;

float tate;

float yoko;

float takasa;


void display(); //自作関数display()はクラスCubeのメンバ関数とよばれます


};


void Cube::display() {


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

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

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

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


}


//👆クラスCubeのメンバ関数となっている自作関数display()の定義をおこなっています


int main() {


Cube cube1;


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


cube1.no = 1;

cube1.tate = 2.0;

cube1.yoko = 3.0;

cube1.takasa = 4.0;


cube1.display();


return 0;

}


プログラムの実行結果


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

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

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

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



ソーラー「この


プログラムの実行結果


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

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

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

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



クラスCube型のオブジェクトcube1のメンバ関数


cube1.display();


の実行結果です。


___________________________


クラスCube型の


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


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


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

cube1.display()


の構造は


以前のエピソードででてきた


構造体struct Cube型の構造体変数cube1のメンバ変数


cube1.no

cube1.tate

cube1.yoko

cube1.takasa

同じ構造です。


つまり


cube1の構造体struct Cube型の構造体変数宣言


struct Cube cube1をおこなって


はじめて


構造体struct Cube型の構造体変数cube1のメンバ変数


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


が使用できたように



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


Cube cube1;



実行されて


はじめて


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


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


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

cube1.display()


が使用できることになります


そして


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


cube1.display();


が実行されるとどのようなことがおこなわれるのでしょうか?



クラスCubeのメンバ関数display() の定義は

👇

void Cube::display() {


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

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

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

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

}


となっています


クラスCube型のオブジェクトcube1のメンバ関数


cube1.display()


が実行されるとき


クラスCubeのメンバ関数display()の定義のブロック{}内で用いられている


変数

no

tate

yoko

takasa


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


Cube cube1;

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


によって作成される


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

cube1.no

cube1.tate

cube1.yoko

cube1.takasa


代入された


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

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

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

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


が実行されることになります


オブジェクト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です


が表示されることになります



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


         Cube cube1;


         によって作製された

           

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


           cube1.no

           cube1.tate

           cube1.yoko

           cube1.takasa


             に


          立方体cube1のデータ


       立方体cube1に付けられた番号1

           縦の長さ 2.0

           横の長さ 3.0

           高さの長さ 4.0



を格納し


            cube1.display();


を実行することができましたね」

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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