2つ目の方法でオブジェクトp1に++演算子を作用させた++p1;を実行できるようにしオブジェクトp1のメンバ変数 p1.x,p1.yに格納されている値を1増やせるようにしてみます

🌞    🌞    🌞    🌞    🌞    🌞    🌞


さきほどは


普通は実行できない



          クラスPoint型のオブジェクトp1に



             💖単項演算子++💖



を作用させた



               ++p1;


を実行して


クラスPoint型のオブジェクトp1のメンバ変数


           💖p1.x💖

           💖p1.y💖


に格納されている値を


1増やすことができるよう


++演算子のオーバーロードを実行するのに


operator++関数の


クラスPointのメンバ関数宣言を行い


クラスPointのメンバ関数であるoperator++関数の定義


を設定する方法を用いました



     こ💖ん💖ど💖は



次は


普通は実行できない



          クラスPoint型のオブジェクトp1に



             💖単項演算子++💖



を作用させた



               ++p1;


を実行して


クラスPoint型のオブジェクトp1のメンバ変数


           💖p1.x💖

           💖p1.y💖


に格納されている値を


1増やすことができるよう


++演算子のオーバーロードを実行するのに


クラスPointのクラス宣言内で


operator++関数のフレンド関数宣言を実行し


クラスPointのメンバ関数でない普通の自作関数operator++関数の定義


を設定する方法をためしてみ・よ・う・よ🌞



🌞    🌞    🌞    🌞    🌞    🌞    🌞


マックス「どんとこい 超常現象」



🌞    🌞    🌞    🌞    🌞    🌞    🌞


そのためには


クラスPointのクラス宣言内で


operator++関数のフレンド関数宣言


friend Point operator++(Point& p);


を実行し


そののち


クラスPointのメンバ関数でない普通の自作関数operator++関数の定義を


Point operator++(Point& p) {


p.x=p.x+1;

p.y = p.y +1;

return p;

}


と設定します


うふふふふ(´▽`*)


🌞    🌞    🌞    🌞    🌞    🌞    🌞


マックス「operator++関数のフレンド関数宣言が


friend Point operator++(Point& p);


か・・・



ううん?


operator++関数の引数部分にみなれない記述があるじゃないか?


Point& p・・・?


なんだ これは?」


てんC「マックスさん


Point& p



    😊pのクラスPoint&型の参照変数宣言のようですね😊


                               」


マックス「


          😊参照変数😊


か・・・


ここで登場か


どんなんだったけか わすれちゃったよぉん」


てんC「たとえば


aのint&型の参照変数宣言


int& a;


を行い


int&型の参照変数aを生成したとします


int&型の参照変数aにはint型の変数を代入することができます


たとえば


変数宣言


int b;


を実行し


int型の変数bを作製したなら


int&型の参照変数aに


a=b;



int型の変数bを代入することができます


すると


参照変数aはint型の変数bそのものをあらわすことになるのでしたね。


同様に


pのクラスPoint&型の参照変数宣言


Point& p;


を行い


クラスPoint&型の参照変数pを生成したとします


クラスPoint&型の参照変数pにはクラスPoint型のオブジェクト(変数)を代入することができます


たとえば


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


Point p1;


を実行し


クラスPoint型のオブジェクトp1を作製したなら


クラスPoint&型の参照変数pに


p=p1;


クラスPoint型のオブジェクトp1を代入することができます


すると


参照変数pはクラスPoint型のオブジェクトp1そのものをあらわすことになります


ですので


クラスPoint型のオブジェクトp1のメンバ変数


p1.x

p1.y


参照変数pをもちいて


p.x

p.y


と表すことができます」

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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