[英]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.