5

Cprogramming.com のランダムなページを調べていて、コンストラクターとデストラクタのチュートリアル/サンプル ページに気付きました。彼らは、コンストラクターを定義する次の方法を使用しました。

class String
{
    private:
        char *str;
        int size;
    public:
        String() : str(NULL), size(0) { }  // <- This statement
        String(int size) : str(NULL), size(size) {  // <- And this one
            str = new char[size];
        }
}

this私は、マジックポインターを使用して古き良きコンストラクターの定義を使用してきました。

String() { 
    this->str = NULL;
    this->size = 0;
}
String(int size) {
    this->size = size;
    this->str = new char[size];
}

明らかに小さいコード (行数が少ない) のほかに、最初の宣言に追加の利点はありますか?

PS:最後に C++ で何かを書いてからかなりの年月が経ちました。

4

3 に答える 3

1

私はあなたと同じでした。古いコラージュの知識では、この使用法は奇妙に思えます。ただし、この手法を使用することで、カスタム クラスの実装が実行時のパフォーマンスを向上させることを理解してください。そして、C++ の父からの初期化リストに関する長い説明があります

于 2013-06-02T15:20:36.560 に答える