c++如何为数组成员在初始化列表里初始化

2024-11-28 12:50:28
推荐回答(4个)
回答(1):

class A{
    private:
        int a[10];
    public:
        A(int n):a{n}{
        }
}

注:数组可以用大括号初始化,且不会出warning。如:

class A{
    private:
        int a[100];
    public:
        A(int a0,int a1,int a2):a{a0,a1,a2}{
        }
}

回答(2):

如果你一定要在初始化列表中初始化,可以这样做,就是麻烦了些:
class A
{
private:
union {
int a[10];
int a0;
};
public:
A(int n):a0(n){}
};

回答(3):

初始化类表初始化的是类的成员,你这个类中的成员是a,而不是a[0]
所以不行

回答(4):

A(int n)
{
a[0] = n;
}