1

コードに整数データメンバーを含むクラスがありますが、メソッドはありません。new()を使用して新しいオブジェクトを作成するときに、すべてのデータ項目を0で初期化する方法はありますか?

4

3 に答える 3

5
class A
{
    int x_; 
    int y_; 

    public: 
        A() 
           : 
             x_(0),
             y_(0)
        {} 
};

ブラケット "{}" の前の A() コンストラクターの部分は "初期化リスト" と呼ばれ、上記の場合は変数をデフォルト値 0 に初期化するために使用します。これらの値を引数として取る可能性のあるコンストラクター。ただし、タイプ A のオブジェクトを初期化すると (たとえば、"new" で)、属性はそれらの値に初期化されます。宣言されているのと同じ順序で属性を初期化するのは良いコーディング スタイルです。これにより、コードが読みやすくなります。

于 2013-01-08T12:37:23.207 に答える
3

値の初期化:

struct X
{
    int i, j;
};

X* x = new X(); // The '()' are required.
// 0 == x->i && 0 == x->j
于 2013-01-08T12:33:31.063 に答える
2
class clasName{
 int x1= 0;
 int x2= 0;
 int x3= 0;
 int x4= 0;
 int x5= 0;
}

C++11 のみ。

于 2013-01-08T12:30:14.503 に答える