クラス鑑賞会その5 オブジェクトのメンバ変数、メンバ関数を利用しないでcoutとクラスのメンバ変数を用いてオブジェクトのメンバ変数に格納された数値データを表示することはできません


さあ クラスの鑑賞会はまだまだ続いていきます



#include <iostream>


using namespace std;


class Cube {


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


int no; //変数noはクラスCubeのメンバ変数とよばれます

float tate; //変数tateはクラスCubeのメンバ変数とよばれます

float yoko; //変数yokoはクラスCubeのメンバ変数とよばれます

float takasa; //変数takasaはクラスCubeのメンバ変数とよばれます


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です

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

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


マックス「


cube1.no = 1;

cube1.tate = 2.0;

cube1.yoko = 3.0;

cube1.takasa = 4.0;


cube1.display();


を実行すると



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


void Cube::display() {


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

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

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

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


}



変数

no

tate

yoko

takasa


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

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

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



表示される。


なるほどお


変数

no

tate

yoko

takasa



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

cube1.no

cube1.tate

cube1.yoko

cube1.takasa

が代入される


今度は


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

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

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

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

コマンドプロンプト画面に表示するために



main関数内で


cube1.display();


を実行せずに


代わりに


直接


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

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

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

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



を実行したらどうなるんだ?」


ソーラー「


no

tate

yoko

takasa


ですか・・・







これは


普通に


プログラムの実行結果


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

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

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

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


が表示されるんじゃないかな(^_-)-☆」


マックス「それでは


main関数内で


cube1.no = 1;

cube1.tate = 2.0;

cube1.yoko = 3.0;

cube1.takasa = 4.0;

を実行した後


cube1.display();


を実行せずに


代わりに


直接


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

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

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

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


を実行してみるとするか。


俺も


プログラムの実行結果


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

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

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

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


が表示されるとおもうがな にゃはは」



#include <iostream>


using namespace std;


class Cube {


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


int no; //変数noはクラスCubeのメンバ変数とよばれます

float tate; //変数tateはクラスCubeのメンバ変数とよばれます

float yoko; //変数yokoはクラスCubeのメンバ変数とよばれます

float takasa; //変数takasaはクラスCubeのメンバ変数とよばれます


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;


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

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

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

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


return 0;

}



マックス「それでは このプログラムを



            

             ビルドっ!


                           」








ビルド実行結果


エラー (アクティブ) E0020 識別子 "yoko" が定義されていません

エラー (アクティブ) E0020 識別子 "tate" が定義されていません

エラー (アクティブ) E0020 識別子 "takasa" が定義されていません

エラー (アクティブ) E0020 識別子 "no" が定義されていません

エラー C2065 'yoko': 定義されていない識別子です。

エラー C2065 'tate': 定義されていない識別子です。

エラー C2065 'takasa': 定義されていない識別子です。

エラー C2065 'no': 定義されていない識別子です。


てんC「普通に


変数

no

tate

yoko

takasa


が定義されていません


と表示されています。


確かにmain関数内では


no

tate

yoko

takasa

は変数宣言、定義されていません。


また


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


cube1.no

cube1.tate

cube1.yoko

cube1.takasa

cube1.no = 1;

cube1.tate = 2.0;

cube1.yoko = 3.0;

cube1.takasa = 4.0;

数値データが代入されている場合


クラスのメンバ関数


cube1.display();


を実行すると


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


void Cube::display() {


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

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

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

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


}


内の


no

tate

yoko

takasa


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


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


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


直接、命令文


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

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

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

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


を実行しても


変数

no

tate

yoko

takasa



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


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


が代入されることはなく


no=1;

tate=2.0;

yoko=3.0;

takasa=4.0;


と数値データは


代入されないのですね。」


マックス「


ということは


main関数内で変数宣言


int no;

float tate;

float yoko;

float takasa;


を実行した場合は




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

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

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

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


を実行すると


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

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

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

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



が表示されたりするのか?



ぶーにゃん「にゃ~ん」


ソーラー「どっかな~?それも試してみなくっちゃ


#include <iostream>


using namespace std;


class Cube {


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


int no; //変数noはクラスCubeのメンバ変数とよばれます

float tate; //変数tateはクラスCubeのメンバ変数とよばれます

float yoko; //変数yokoはクラスCubeのメンバ変数とよばれます

float takasa; //変数takasaはクラスCubeのメンバ変数とよばれます


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;


int no;

float tate;

float yoko;

float takasa;


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

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

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

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


return 0;

}


ビルド実行結果


エラー C4700 初期化されていないローカル変数 'yoko' が使用されます

エラー C4700 初期化されていないローカル変数 'tate' が使用されます

エラー C4700 初期化されていないローカル変数 'takasa' が使用されます

エラー C4700 初期化されていないローカル変数 'no' が使用されます


ソーラー「あれ?


no

tate

yoko

takasa


が初期化されていないと表示されたね。」


マックス「ほほう ふっ


では

int no=1;

float tate=2.0;

float yoko=3.0;

float takasa=4.0;


を実行したら


このプログラムを実行できるんじゃないか?」


#include <iostream>


using namespace std;


class Cube {


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


int no; //変数noはクラスCubeのメンバ変数とよばれます

float tate; //変数tateはクラスCubeのメンバ変数とよばれます

float yoko; //変数yokoはクラスCubeのメンバ変数とよばれます

float takasa; //変数takasaはクラスCubeのメンバ変数とよばれます


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;


int no = 1;

float tate = 2.0;

float yoko = 3.0;

float takasa = 4.0;


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

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

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

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


return 0;

}



プログラムの実行結果


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

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

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

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


ソーラー「よく考えたら・・・


このプログラムって


ただ単に


cube1.no = 1;

cube1.tate = 2.0;

cube1.yoko = 3.0;

cube1.takasa = 4.0;


と関係なく


int no=1;

float tate=2.0;

float yoko=3.0;

float takasa=4.0;


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

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

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

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


を実行しただけですね。」



マックス「うぅ そういえば そうだな・・・。


当然のプログラムの実行結果か~い!」



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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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