🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
仲間に薬草を使う場合は静的メンバ関数を用いることは適していません。なぜなら静的メンバ関数は静的メンバ変数のみ取り扱うことができメンバ変数を取り扱うことができないからです
仲間に薬草を使う場合は静的メンバ関数を用いることは適していません。なぜなら静的メンバ関数は静的メンバ変数のみ取り扱うことができメンバ変数を取り扱うことができないからです
ソーラー「
でも
仲間に薬草を使うプログラムには注意点があります
仲間に薬草を使う場合は
💖クラスの静的メンバ関数💖を用いることは適していません
なぜなら
💖クラスの静的メンバ関数は💖
クラスの静的メンバ変数のみ取り扱うことができ
クラスのメンバ変数を取り扱うことができないからです」
マックス「na,nannda?? 宇宙語か?」
てんC「確か以前のエピソードで
クラスの静的メンバ関数の定義には
クラスの静的メンバ変数しか用いることができないということを
考察してきました
そのことと関係があるのですか?」
ソーラー「そうなんです
まずは
前のエピソードで登場してきた仲間に薬草を使うプログラムをご覧ください
👇
#include <iostream>
#include <string>//文字列を取り扱うためにヘッダファイル <string>をインクルードしています
using namespace std;
class GameCharacter {
public:
string name;
int HP;
int MP;
static int numberofMedicalHerb;//🌞numberofMedicalHerbの静的メンバ変数宣言を実行しています
void statusDataDisplay();
void useMedicalHerb(GameCharacter& a);//薬草を使うメンバ関数です
};
void GameCharacter::statusDataDisplay() {
cout << name << "\n";
cout << "HP " << HP << "\n";
cout << "MP " << MP << "\n";
}
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
int GameCharacter::numberofMedicalHerb = 18;
int main() {
GameCharacter Lyliane;
GameCharacter Elfine;
Lyliane.name = "リリアーネ";
Lyliane.HP = 10;
Lyliane.MP = 8;
Elfine.name = "エルフィン";
Elfine.HP = 15;
Elfine.MP = 5;
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
Lyliane.useMedicalHerb(Elfine);
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
return 0;
}
プログラムの実行結果
リリアーネ
HP 10
MP 8
エルフィン
HP 15
MP 5
リリアーネはエルフィンに薬草をつかった
エルフィンのHPは2回復した
薬草の数は17個になった
リリアーネ
HP 10
MP 8
エルフィン
HP 17
MP 5
ソーラー「
このプログラムでは
仲間に薬草を使うことができるよう
クラスGameCharacter でメンバ関数宣言
void useMedicalHerb(GameCharacter& a);
が設定され
クラスGameCharacter でメンバ関数の定義が
👇のように
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
設定されています
このクラスGameCharacterのメンバ関数
useMedicalHerb(GameCharacter& a)の定義内では
クラスGameCharacterのメンバ変数
name
が用いられています
ここがポイントなんです
静的メンバ関数は
クラスのメンバ変数を定義内に用いることができないので
仲間に薬草を使うことができるよう
クラスGameCharacter内 で静的メンバ関数宣言
static void useMedicalHerb(GameCharacter& a);
を設定した場合
クラスGameCharacterの静的メンバ関数
void useMedicalHerb(GameCharacter& a)
の定義内で
クラスGameCharacterのメンバ変数nameを
用いることは出来ません
具体的には
以下のように
クラスGameCharacterのメンバ変数nameを
用いて
クラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter& a)の定義を設定することはできません
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
ソーラー「この
クラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter& a)
の定義内では
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
のように
クラスGameCharacterのメンバ変数nameが用いられています
が
クラスGameCharacterの静的メンバ関数の定義内では
クラスGameCharacterのメンバ変数を用いることはできないので
この
クラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter& a)
の定義
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
が用いられたプログラムはビルドエラーが表示されることになります
(ただし void GameCharacter::useMedicalHerb(GameCharacter& a))のように
引数部分にGameCharacter& a
つまり
GameCharacter&型の参照変数aを設定し
GameCharacter型のオブジェクトを代入することができるよう設定することは可能です
エラーが表示されるようなことはありません
引数部分にGameCharacter& aが設定された場合
クラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter& a)の定義
のブロック{}内で
cout << a.name << "に薬草をつかった" << "\n";
a.HP += 2;
のように
aのメンバ変数
a.name
や
a.HPを用いることは可能となります
詳しくは後ほど解説されます(*´▽`*))
結局
クラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter a)
の定義に
クラスGameCharacterのメンバ変数nameが以下のように用いられていると
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
このクラスGameCharacterが用いられたプログラムは
エラーが表示されることになります
そのことを示すプログラムはこちらです
👇
#include <iostream>
#include <string>//文字列を取り扱うためにヘッダファイル <string>をインクルードしています
using namespace std;
class GameCharacter {
public:
string name;
int HP;
int MP;
static int numberofMedicalHerb;//ここに追加しました
void statusDataDisplay();
static void useMedicalHerb(GameCharacter& a);//🌞ここに注目useMedicalHerbの静的メンバ関数宣言がおこなわれています
};
void GameCharacter::statusDataDisplay() {
cout << name << "\n";
cout << "HP " << HP << "\n";
cout << "MP " << MP << "\n";
}
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
//👆ここに注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
int GameCharacter::numberofMedicalHerb = 18;
int main() {
GameCharacter Lyliane;
GameCharacter Elfine;
Lyliane.name = "リリアーネ";
Lyliane.HP = 10;
Lyliane.MP = 8;
Elfine.name = "エルフィン";
Elfine.HP = 15;
Elfine.MP = 5;
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
GameCharacter::useMedicalHerb(Elfine);
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
Elfine.useMedicalHerb(Lyliane);
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
return 0;
}
プログラムの実行結果
エラー (アクティブ) E0245 静的でないメンバー参照は特定のオブジェクトを基準とする相対参照である必要があります
エラー C2597 静的でないメンバー 'GameCharacter::name' への参照が正しくありません。
マックス「このように
ビルドエラーが生じるのは
クラスGameCharacterの静的メンバ関数useMedicalHerbの定義内で
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
のように
クラスGameCharacterのメンバ変数
nameが用いられているからなんだろう?
じゃあ
クラスGameCharacterのメンバ変数
nameが用いられていなければ
このプログラムは実行できるわけだ」
てんC「そうですね
まとめると
クラスGameCharacterのメンバ関数の定義内で
クラスGameCharacterのメンバ変数
クラスGameCharacterの💖静的メンバ関数💖
は使用することができますが
クラスGameCharacterの💖静的メンバ関数💖の定義内で
クラスGameCharacterのメンバ変数を使用することはできません
さらに付け加えると
クラスGameCharacterの💖静的メンバ関数💖の定義内で
クラスGameCharacterの静的メンバ変数を使用することはできるのですね」
マックス「
ところで
いまの
クラスGameCharacterの静的メンバ関数useMedicalHerbの定義
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
//👆この行に注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
のブロック内{}で用いられている
このname とa.nameの違いがよくわからんな
クラスGameCharacterの静的メンバ関数の定義のブロック{}内で
クラスGameCharacterのメンバ変数nameが使えないということだったが
a.nameも使えないということか?」
てんC「nameはクラスGameCharacterのメンバ変数というところがポイントですね
もしも
クラスGameCharacterの静的メンバ関数useMedicalHerbの定義
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
//👆この行に注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
が設定されているのではなく
代わりに
クラスのメンバ関数useMedicalHerbの定義
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
//👆この行に注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
が設定されているのであれば
LylianeのクラスGameCharacter型のオブジェクト宣言が行われ
クラスGameCharacter型のオブジェクトLylianeが生成されたとき
クラスGameCharacter型のオブジェクトLylianeのメンバ変数
Lyliane.name
Lyliane.HP
Lyliane.MP
が生成され
クラスGameCharacter型のオブジェクトLylianeのメンバ関数useMedicalHerbが実行される際
クラスGameCharacterのメンバ関数useMedicalHerbの定義のブロック{}で用いられている
クラスGameCharacterのメンバ変数nameは
LylianeのクラスGameCharacter型のオブジェクト宣言が行われたときに
生成される
クラスGameCharacter型のオブジェクトLylianeのメンバ変数Lyliane.nameをあらわすことになります
しかし
クラスGameCharacterに
クラスGameCharacter内 で静的メンバ関数宣言
static void useMedicalHerb(GameCharacter& a);
と
クラスGameCharacterの静的メンバ関数useMedicalHerbの定義
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
//👆この行に注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
が設定されている場合は
クラスGameCharacterの💖静的メンバ関数useMedicalHerb💖の定義内で
クラスGameCharacterのメンバ変数nameを使用することはできないので
エラーが生じることになります
もちろん
クラスGameCharacter型のオブジェクトLylianeの静的メンバ関数useMedicalHerbが実行される際
クラスGameCharacterの静的メンバ関数useMedicalHerbの定義のブロック内で用いられている
クラスGameCharacterのメンバ変数nameは
LylianeのクラスGameCharacter型のオブジェクト宣言が行われたときに
生成される
クラスGameCharacter型のオブジェクトLylianeのメンバ変数nameをあらわすなんてことにはおこりません」
マックス「ここまでOKなんだが(*^^*)」
てんC「はい そして
クラスGameCharacterの静的メンバ関数宣言
static void useMedicalHerb(GameCharacter& a);
が設定され
クラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter& a)の定義が
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout <<name << "は" << a.name << "に薬草をつかった" << "\n";
//👆ここに注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb =numberofMedicalHerb - 1;
cout << "薬草の数は" <<numberofMedicalHerb << "個になった" << "\n";
}
👆
のように設定されている場合
このクラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter& a)の定義内で
使用できないのは
クラスのGameCharacterのメンバ変数
name
で
使用できるのは
クラスのGameCharacterの静的メンバ変数
numberofMedicalHerb
となります
つまり
💖クラスGameCharacterの静的メンバ関数💖の💖定義内💖で
クラスのGameCharacterのメンバ変数
name
が記述されている場合
コンパイラは
クラスGameCharacterのメンバ変数name
が
💖クラスGameCharacterの静的メンバ関数💖の💖定義内💖で
用いられていると判断し
ビルドエラーが表示されることになるのですね
もちろん
リリアーネにエルフィンのHPを回復させる
クラスGameCharacter型のオブジェクトLylianeの静的メンバ関数
Lyliane.useMedicalHer(Elfine);
を実行することはできません
実行できたなら
クラスGameCharacterの静的メンバ関数の定義のブロック内で用いられている命令文の中の
クラスGameCharacterのメンバ変数nameに
LylianeのクラスGameCharacter型のオブジェクト宣言が行われたときに
生成される
クラスGameCharacter型のオブジェクトLylianeのメンバ変数
Lyliane.name
が代入されたものが実行されることになりそうですが
もちろん
Lyliane.useMedicalHer(Elfine);
を実行することはできず
クラスGameCharacterの静的メンバ関数の定義のブロック内で用いられている命令文の中の
クラスGameCharacterのメンバ変数nameに
LylianeのクラスGameCharacter型のオブジェクト宣言が行われたときに
生成される
クラスGameCharacter型のオブジェクトLylianeのメンバ変数
Lyliane.nameが代入されるということはおこりません」
マックス「😊ということは・・・・・
・・・・・・・・・・・・・・
ううん??
クラスGameCharacterの静的メンバ関数宣言
static void useMedicalHerb(GameCharacter& a);
が設定され
クラスGameCharacterの静的メンバ関数
static void useMedicalHerb(GameCharacter& a)の定義が行われているのでなく
代わりに
クラスGameCharacterのメンバ関数宣言
void useMedicalHerb(GameCharacter& a);
が設定され
クラスGameCharacterのメンバ関数
void useMedicalHerb(GameCharacter& a)の定義が
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout <<name << "は" << a.name << "に薬草をつかった" << "\n";
//👆ここに注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb =numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
のように設定されている場合
main関数内で
クラスGameCharacter型のオブジェクトLylianeメンバ関数
Lyliane.useMedicalHerb(Elfinne);
が実行された場合
a.name
a.HP
は
Elfinne.name
Elfinne.HP
をあらわすことになるんだろう
同様に
🍊クラスGameCharacterの静的メンバ関数の定義内のブロック内
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout <<name << "は" << a.name << "に薬草をつかった" << "\n";
//👆ここに注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb =numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
で
name
をもちいることはできなくても
a.name
a.HP
を
使用することは可能なのか?」
ソーラー「そうなんです😊 そういうふうに設定されているんです」
マックス「ほほう」
ソーラー「
クラスGameCharacterの静的メンバ関数の定義内で
クラスGameCharacterのメンバ変数nameを用いることができないのなら
クラスGameCharacterのメンバ変数nameを取り除いてしまえばよいことになります
ですので
クラスGameCharacterの静的メンバメソッド
void useMedicalHerb(GameCharacter& a)の定義内
👇
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout <<name << "は" << a.name << "に薬草をつかった" << "\n";
//👆ここに注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb =numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
👆
の
cout << name << "は" << a.name << "に薬草をつかった" << "\n";
の部分を
クラスGameCharacterのメンバ変数nameを含む
name << "は"
を取り除いた
cout << a.name << "に薬草をつかった" << "\n";
に変更してプログラムを再度実行してみましょう
静的メンバ関数useMedicalHerb内で
a.nameがもちいられているけど
本当にちゃんと実行できるかな?
そのプログラムはこちらとなります
👇
#include <iostream>
#include <string>//文字列を取り扱うためにヘッダファイル <string>をインクルードしています
using namespace std;
class GameCharacter {
public:
string name;
int HP;
int MP;
static int numberofMedicalHerb;//ここに追加しました
void statusDataDisplay();
static void useMedicalHerb(GameCharacter& a);//ここに追加しました
};
void GameCharacter::statusDataDisplay() {
cout << name << "\n";
cout << "HP " << HP << "\n";
cout << "MP " << MP << "\n";
}
void GameCharacter::useMedicalHerb(GameCharacter& a) {
cout << a.name << "に薬草をつかった" << "\n";
//👆ここに注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
int GameCharacter::numberofMedicalHerb = 18;
int main() {
GameCharacter Lyliane;
GameCharacter Elfine;
Lyliane.name = "リリアーネ";
Lyliane.HP = 10;
Lyliane.MP = 8;
Elfine.name = "エルフィン";
Elfine.HP = 15;
Elfine.MP = 5;
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
GameCharacter::useMedicalHerb(Elfine);
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
Elfine.useMedicalHerb(Lyliane);
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
return 0;
}
ビルド実行結果
リリアーネ
HP 10
MP 8
エルフィン
HP 15
MP 5
エルフィンに薬草をつかった👈ここが変化しました
エルフィンのHPは2回復した
薬草の数は17個になった
リリアーネ
HP 10
MP 8
エルフィン
HP 17
MP 5
ソーラー「うまく実行できました
ただし この場合
クラスGameCharacter の静的メンバ関数useMedicalHerb(GameCharacter& a)の定義のブロック{}内ではクラスGameCharacter のメンバ変数nameを使用することができないため
ビルド実行結果に
エルフィンに薬草をつかった
を表示することはできますが
リリアーネはエルフィンに薬草をつかった
を表示することはできませんね
このクラスGameCharacterの静的メンバ関数useMedicalHerb(GameCharacter& a)では
誰が薬草を使ったかを表現することはできないというわけです」
☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
とはいえ
静的メンバ関数を使って
リリアーネはエルフィンに薬草をつかった
を表示する方法もあります
GameCharacterのクラス宣言内で
クラスGameCharacterの静的メンバ関数宣言
void GameCharacter::useMedicalHerb(GameCharacter& a, GameCharacter& b);
(👆引数を
GameCharacter& a
GameCharacter& b
のように
2つ設定しているのがポイントです)
を実行し
クラスGameCharacterの静的メンバ関数useMedicalHerbの定義を
void GameCharacter::useMedicalHerb(GameCharacter& a, GameCharacter& b) {
cout << b.name << "は" << a.name << "に薬草をつかった" << "\n";
👆この行に注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
のように変更し
GameCharacter::useMedicalHerb(Elfine,Lyliane);
を実行すれば
プログラムの実行結果に
リリアーネはエルフィンに薬草をつかった
を表示することができます
そのことを示すプログラムはこちらです
👇
#include <iostream>
#include <string>//文字列を取り扱うためにヘッダファイル <string>をインクルードしています
using namespace std;
class GameCharacter {
public:
string name;
int HP;
int MP;
static int numberofMedicalHerb;//ここに追加しました
void statusDataDisplay();
static void useMedicalHerb(GameCharacter& a, GameCharacter& b);//ここに追加しました
};
void GameCharacter::statusDataDisplay() {
cout << name << "\n";
cout << "HP " << HP << "\n";
cout << "MP " << MP << "\n";
}
void GameCharacter::useMedicalHerb(GameCharacter& a, GameCharacter& b) {
cout << b.name << "は" << a.name << "に薬草をつかった" << "\n";
//👆ここに注目
a.HP += 2;
cout << a.name << "のHPは" << "2回復した" << "\n";
numberofMedicalHerb = numberofMedicalHerb - 1;
cout << "薬草の数は" << numberofMedicalHerb << "個になった" << "\n";
}
int GameCharacter::numberofMedicalHerb = 18;
int main() {
GameCharacter Lyliane;
GameCharacter Elfine;
Lyliane.name = "リリアーネ";
Lyliane.HP = 10;
Lyliane.MP = 8;
Elfine.name = "エルフィン";
Elfine.HP = 15;
Elfine.MP = 5;
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
GameCharacter::useMedicalHerb(Elfine,Lyliane);
Lyliane.statusDataDisplay();
Elfine.statusDataDisplay();
return 0;
}
ビルド実行結果
リリアーネ
HP 10
MP 8
エルフィン
HP 15
MP 5
リリアーネはエルフィンに薬草をつかった👈ここに注目
エルフィンのHPは2回復した
薬草の数は17個になった
リリアーネ
HP 10
MP 8
エルフィン
HP 17
MP 5
マックス「・・・
ということは
仲間に薬草を使う場合は静的メンバ関数を用いることは適していません。なぜなら静的メンバ関数は静的メンバ変数のみ取り扱うことができメンバ変数を取り扱うことができないからです
とはいえ
仲間に薬草を使う場合に
静的メンバ関数を用いて
GameCharacter::useMedicalHerb(Elfine,Lyliane);
を実行する方法もあるってわけか」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます