c++在(类中)怎么对整形(int)数组进行初始化为0

c++在(类中)如何对整形(int)数组进行初始化为0
本帖最后由 qq_25741339 于 2015-09-22 16:51:01 编辑
最近在学习类,今天遇到了一个问题,一直解决不了。没辙了,只能在来这里求救。,
在类中
class T:
{
public:
      T()
        {
          nNum[4]={0};//老是出错;
         }

private:
int nNum[4];
};

class T:
{
public:
      T()
        {
          int nNum[4]={0};//这样就可以;
         }
};

class T:
{
public:
      T()
        {
          nNum[0]=0;//这样也可以;
          nNum[1]=0;
          nNum[2]=0;
          nNum[3]=0; //假如我有1000个10000个元素呢?总不能也一个个去这样赋值吧1
         }
private:
int nNum[4];
};

使用memset 也不能对整形 数组初始化
使用memspy 需要再设置一个整形数组并且初始化int nfz[4]={0}; 然后在在构造函数中进行初始化memspy(nNum,...,...);
不知道我说的对不对,具体我也是度娘。感觉这样不是对于吗?还不如我直接就在构造函数进行int nNum[4]={0};


具体有没有一个好点,统一一点的答案,坐等大神


------解决思路----------------------
memset 或者fill, {}是初始化列表, 在声明时定义用的
------解决思路----------------------
#include<iostream>
using namespace std;
class A
{
    public:
        A():a{1,2,3,4}{}
        ~A(){}
        void P()
        {
            for(const int x:a)
                cout<<x<<'\t';
            cout<<endl;
        }
    private:
        int a[4];
};
class B
{
    public:
        B()
        {
            memset(b,0,sizeof(b));
        }
        ~B(){}
        void P()
        {
            for(const int x:b)
                cout<<x<<'\t';
            cout<<endl;
        }
    private:
        int b[4];
};
class C
{
    public:
        C()
        {
            for(int i=sizeof c/sizeof *c-1;i>=0;--i)
                c[i]=i*i;
        }
        ~C(){}
        void P()
        {
            for(const int x:c)
                cout<<x<<'\t';
            cout<<endl;
        }
    private:
        int c[4];
};
int main()
{
    A().P();
    B().P();
    C().P();
    return 0;
}

------解决思路----------------------
struct A
{
int a[10] = {};
};

struct B
{
B() : a{}
{

}

int a[10];
};

int main()
{

}


用新点的编译器怎么折腾都行的
------解决思路----------------------
c++11 支持了吧, 除非是const数组有点麻烦
------解决思路----------------------
如果值是 0 或者 -1 之类的,使用 memset.
如果值有规律,使用 for 循环。
否者就手动一个一个的赋值。
或者使用 int a[]{1,2,3,4} .
------解决思路----------------------
如果数组内容有规律,就可以整体赋值,或者循环复制,没规律,就只能一个一个赋值了。