簡體   English   中英

在C ++中的構造函數中初始化數組

[英]Initialize an array inside Constructor in C++

我在一個類中定義了一個數組。 我想用一些預先確定的值來初始化數組。 如果我只能在定義上做到這一點,那么它將比我以前使用的更容易

class A{
    int array[7]={2,3,4,1,6,5,4};
}

但是,我做不到。 這,我需要在構造函數內部進行。 但是我不能使用上面相同的語法,因為它將在Constructor中創建一個新數組,並且不會影響在類中定義的數組。 最簡單的方法是什么?

class A{
    public:
    int array[7];
    A::A(){

    }
}

您可以在構造函數成員初始化器列表中初始化數組

A::A() : array{2,3,4,1,6,5,4} {

}

或更舊的語法

A::A() : array({2,3,4,1,6,5,4}) {

}

您的示例應使用支持最新標准的編譯器進行編譯。


另請注意,您的類聲明缺少尾隨的分號

class A{
    public:
    int array[7];
    A();
  };
// ^ 

使用C ++ 11可以編寫以下代碼:

class C
{
    int x[4];
public:
    C() : x{0,1,2,3}
    {
        // Ctor
    }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM