c++在(类中)怎么对整形(int)数组进行初始化为0
c++在(类中)如何对整形(int)数组进行初始化为0
最近在学习类,今天遇到了一个问题,一直解决不了。没辙了,只能在来这里求救。,
在类中
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, {}是初始化列表, 在声明时定义用的
------解决思路----------------------
------解决思路----------------------
用新点的编译器怎么折腾都行的
------解决思路----------------------
c++11 支持了吧, 除非是const数组有点麻烦
------解决思路----------------------
如果值是 0 或者 -1 之类的,使用 memset.
如果值有规律,使用 for 循环。
否者就手动一个一个的赋值。
或者使用 int a[]{1,2,3,4} .
------解决思路----------------------
如果数组内容有规律,就可以整体赋值,或者循环复制,没规律,就只能一个一个赋值了。
最近在学习类,今天遇到了一个问题,一直解决不了。没辙了,只能在来这里求救。,
在类中
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} .
------解决思路----------------------
如果数组内容有规律,就可以整体赋值,或者循环复制,没规律,就只能一个一个赋值了。