備忘録{コンストラクタ編}

こんにちは、ぷないしんです。

 

C++を勉強するにあたって特徴でもあり難関といえばいくつか挙げられますが、やはりクラスなのではないかと思います。

 

そこで今日はコンストラクタの重要性と必要性を今一度確認してみましょう。

 

 

まずは何がコンストラクタになるのかということと、その使い方です。

 

とりあえずよく例に挙げられる車を使ってソースコードを書いてみます。

 

class Car{
    int number;
    void kansuu();
    Car();
};

 Carという名前のクラスを作りnumberという名前の変数とkansuu及び,Carという名前の関数を二つ定義しました。

 

どうもこのクラスにおいてCar()というメンバ関数がコンストラクタになるみたいです。

 

そしてなんとこのクラスでオブジェクトを定義した時にこのコンストラクタというヤツは自動的に呼び出されるというのです。

 

という事はメイン関数で下記の様に記述したとします。

int main()
{
    Car tanakaCar;
}

すると、tanakaCarオブジェクトを生成すると共にコンストラクタが自動的に呼び出されるという事ですね。

 

また、いくらコンストラクタが特別といえど、あくまで関数の一つなので記述方法も関数とほぼ同様でOKですが、戻り値(voidなど)が無いことが重要とのことです。

戻り値は無くても引数は設定できるのでそこは注意しないと駄目ですね。

 

 

初期化したいときの内容の記述ですが、本やサイトによって二つの記述方法がありますのでまたソースコードで書いてみたいと思います。

(ナンバー変数を0で初期化します)

 

①クラス内で記述する方法

class Car{
public:
    int number;
    void kansuu();
    Car(){
        number = 0;
    }
};
 

②クラスの外でスコープ演算子(::)を使いアクセスする方法

class Car{
public:
    int number;
    void kansuu();
    Car()
};
 
Car::Car(){
    number = 0;
}

 

基本的には①のインラインでコンストラクタを実装するのが普通みたいです。

 

 

と使い方はこんな感じでしょうか、重要性や必要性はまた明日確認したいと思います。

ありがとうございました。

初めまして

初めまして、ぷないしんです。

 

リーダーのM0CAN(仮)と一緒にゲームを作っていくことにしました。

 

プロジェクト自体は2020年の10月から進行していましたが、この度ブログを立ち上げましたのでリーダーと一緒に更新していきます。

 

ゲームの内容はまだ公開できませんが今年の夏に簡単なゲームの作成を目標にしていきたいと思っています。

 

私は今までまったくプログラムなどやっていませんでしたが、リーダーの元で現在勉強中です。

 

それではこれからよろしくお願いします。

 

ぷないしん