メンバー変数とメソッド
メンバー変数を宣言し、メンバーメソッドを記述して、インスタンスから参照します。
「メンバー変数とメソッド」はCoddyKit上の無料C++ Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC++ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C++ Academyコースには全4レッスンが含まれています。
クラスのメンバー
クラスには次の要素を含められます。
- メンバー変数(データ。フィールドと呼ばれることもあります)
- メンバー関数(メソッド)
- ネストした型(typedef、列挙型、クラス)
- 静的メンバー(すべてのインスタンスで共有)
メンバー変数を宣言する
メンバー変数はクラス本体で宣言します。読みやすくするため、C++11のクラス内デフォルト初期化子を使ってください。
class Person {
std::string name_ = "unknown";
int age_ = 0;
public:
// ...
};命名規則
privateメンバーには、次のような一般的な規則があります。
- 末尾にアンダースコアを付ける:
name_ - 先頭に
m_を付ける:m_name - 暗黙の
this->を使った通常の名前
どれか1つを選び、一貫して使ってください。
クラス内でメソッドを定義する
短いメソッドはクラス本体内でインライン定義できます。この場合、暗黙的にinlineになります。
class Counter {
int n_ = 0;
public:
void increment() { ++n_; }
int value() const { return n_; }
};クラスの外でメソッドを定義する
長いメソッドは通常、クラスの外、たとえば.cppファイルで定義します。スコープ解決演算子::を使ってください。
// header
class Logger {
public:
void log(const std::string& msg);
};
// implementation
void Logger::log(const std::string& msg) {
std::cout << "[LOG] " << msg << "\n";
}メソッドを呼び出す
オブジェクトにはドット構文を、ポインターにはアロー構文を使います。
Counter c;
c.increment();
Counter* p = &c;
p->increment();constメソッド
オブジェクトを変更しないメソッドにはconstを付けてください。constインスタンスに対しても呼び出せます。
class Counter {
int n_ = 0;
public:
int value() const { return n_; } // does not modify *this
};静的メンバー
静的メンバーはインスタンスではなくクラスに属します。staticを付けて宣言し、ソースファイルで定義します。
class Logger {
public:
static int messageCount;
static void log(const std::string& msg);
};
int Logger::messageCount = 0;アクセス指定子
アクセスレベルは3つあります。
public— どこからでもアクセス可能private— クラス内部からのみアクセス可能protected— クラス内部と派生クラスからアクセス可能
カプセル化の実践
データメンバーはprivateにしてください。不変条件を保証するメソッドを通じて公開します。
class Temperature {
double celsius_ = 0.0;
public:
void setCelsius(double c); // validates range
double celsius() const { return celsius_; }
double fahrenheit() const { return celsius_ * 9.0/5.0 + 32; }
};メソッドと自由関数
すべてをメソッドにする必要はありません。publicインターフェイスだけを使う関数なら、自由関数を優先してください。結合を減らせます。
クイックチェック
メンバー関数がオブジェクトを変更しないことを示すキーワードは何ですか?
まとめ
メンバー変数はインスタンスごとの状態を保持し、メソッドはその状態を操作します。変更しないメソッドにはconstを付けてください。データはprivateにし、意図を明確にした小さなpublicインターフェイスを通じて振る舞いを公開します。
よくある質問
「メンバー変数とメソッド」レッスンは無料ですか?
はい。「メンバー変数とメソッド」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C++ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C++ Academyコースには全4レッスンが含まれています。
「メンバー変数とメソッド」で何を学びますか?
メンバー変数を宣言し、メンバーメソッドを記述して、インスタンスから参照します。 ブラウザで直接実行するハンズオンコードでC++ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C++ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC++ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「メンバー変数とメソッド」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC++ Academyレッスンでコードを書いて実行できますか?
はい。すべてのC++ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。