クラス宣言についてご説明いたします。クラス宣言と構造体宣言はそっくりさんです💖

ソーラー「では クラスの仕組みについて考察してみよ~う」


てんC「ソーラーさん 楽しそうですね。」


ソーラー「ここで 適切な解説をしよう


(ボケまくろうかな・・)とか


おもったりしててね・・・


はしゃいじゃうわけなんだ😊」


マックス「クラスか・・・


どんな仕組みなんだ?」


ソーラー「まずは


オーソドックスに


クラス宣言というものから考察してみたいと思います


クラス宣言とは次のような形式でおこなわれます。


class クラス名{


アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

};


solarplexuss「class クラス名の後にブロック{}が続いてる・・・」


マックス「くくっ


面白いなあ・・・


まったく わから~~ん


なんだ これは


これで


TVゲームの中の車が作製できるのか?」


ソーラー「もっち~です



このクラス宣言の仕組みがどうなっているかを見ていくね



         "クラスとは"



"あるモノのデータを格納する変数とそのデータを格納している変数に作用する関数を1つにまとめるためにあります"


そのことを意識して


クラス宣言をよくみると・・・

👇


class クラス名{


アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

};


👆

クラス宣言においては


データを格納するための変数の変数宣言と


(その変数に格納されるデータに作用するための)自作関数宣言



ブロック{}内で1まとめになっているのがわかります



class クラス名👉{


アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

};👈


👉{};👈


👉ブロック{}👈の中に


アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;


記述されているね」




てんC「クラス宣言・・・


この記述形式は


どこかでみたような・・・


似たようなものに構造体宣言というものが


ありませんでしたか?」


マックス「あった、あった


(もう 忘れとったんか~い solarplexussより)


そういえば


構造体宣言というものがあったじゃないか


というか・・・


.....🐤 


さっきのエピソードで登場してきただろう


構造体宣言はこれだ!

👇

struct 構造体名{


型名 変数名;(変数宣言)

型名 変数名;(変数宣言)

};

👆


構造体宣言とクラス宣言


なんかめっちゃ似てないか?」


ソーラー「それもそのはず


そもそも


            構造体とは


あるモノのデータ管理を容易にするために

     

あるモノに関係のあるデータを格納する複数の変数を


         😊1まとめに管理する😊


為に生成されるからです


そして


構造体宣言を実行して構造体を作製したあとは


構造体変数宣言を実行して


構造体変数を作製することになりました


この構造体変数は


あるモノに関係のあるデータを格納する複数の変数を


       1まとめに管理する


役割を果たすために


用いられましたね


構造体変数が生成されると同時に生成される


構造体変数のメンバ変数が


あるモノに関係のあるデータを格納する複数の変数の役割を果たすことになるのですが



結局のところは



  1つの構造体変数をもちいて


あるモノに関係のあるデータを


メモリに格納、管理することができるようになります



例えば


  1つの構造体変数をもちいて


(イコール構造体変数のメンバ変数を用いて)


ある1人の生徒の生徒番号、身長、体重、視力のデータ



メモリに格納、管理することができるようになります」


マックス「思い出した


構造体宣言

👇

struct Cube{


型名 変数名;(変数宣言)

型名 変数名;(変数宣言)

};


が実行された場合


Cube



構造体名で


構造体が作製されるんだった


そして


さっきのエピソードでは


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


struct Cube cube1;


の実行により


構造体変数cube1が生成されたわけだ


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


struct Cube cube1;


の実行により生成される


  構造体変数cube1をもちいて


つまり


構造体変数cube1のメンバ変数をもちいて


立方体cube1のデータをまとめて管理できたわけだ



         "クラスとは"



"あるモノのデータを格納する変数とそのデータを格納している変数に作用する関数を1つにまとめるためにあります"


だっただろう



         "構造体とは"



"あるモノのデータを格納する変数を1つにまとめるためにあります"


というわけだ


なるほど・・・にている・・・


では


構造体とクラスの違いとはなにかか・・・


まず


構造体宣言とクラス宣言を観察してみるかにゃ🐈



クラス宣言


class クラス名{


アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

アクセス指定子:自作関数宣言;

};



構造体宣言


struct 構造体名{


型名 変数名;(変数宣言)

型名 変数名;(変数宣言)

};


か・・・


ちがいといえば


まず 


クラス宣言をおこなうときには class



構造体宣言をおこなうときは sturct


をもちいるってことか・・・


あと

クラス宣言内の


アクセス指定子:型名 変数名;(変数宣言)

アクセス指定子:型名 変数名;(変数宣言)



なぜか

型名 変数名;(変数宣言)



アクセス指定子と呼ばれるものがもちいられているな


そして


自作関数宣言か・・・


なぜか


クラス宣言内では


自作関数宣言をおこなっている・・・?


だが

クラス宣言

class クラス名{   };

構造体宣言

struct 構造体名{ };


の形式は{}でくくるあたり


似てるな」


solarplexuss「ちょっとそのお 


たぶんなんだけど


クラス宣言内では


自作関数宣言をおこなっている


のが


構造体宣言との主な違いなんじゃない?」

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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