成员数组如何初始化?

塘外人 2006-05-09 01:50:01
如:
class Test
{
public:
Test();
void print();
private:
int m_ia[10];
char m_cb;
};

如何初始化m_ia[10]?
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanlyf 2006-05-09
  • 打赏
  • 举报
回复
Test();{m_ia[10]=0;
}
如果想初始化别的话
就在成员函数里面定义变量,给m_ia[10]赋值就行了(我的理解)

塘外人 2006-05-09
  • 打赏
  • 举报
回复
用vector是初始化成元素类型的默认值啊,
不能随心所欲
sankt 2006-05-09
  • 打赏
  • 举报
回复
构造函数里面调用:
void *memset( void *dest, int c, size_t count );

或者使用vector

#include<vector>
using namespace std;


class A
{
public:
vector<int> vec;
A(int s) :vec(s) { }

};

int main()
{

A a(10);

system("pause");
return 0;
}
雨中的月儿 2006-05-09
  • 打赏
  • 举报
回复
如果初始化的值完全一样,或者有一定规律,就用memset(void*, int, size_t),如果赋值没有规律,那还是一个一个地来吧。
miss999 2006-05-09
  • 打赏
  • 举报
回复
好像不能吧
把数组声明成static类型的,可是初始化的时候还是要遇到这个问题啊,因为要想用a={1,3,2,5,4}这种形式初始化数组,就必须在声明的时候做,其他时候就不可以这样用,哪怕是用new来动态分配数组时也是不允许的。而在类中声明一个成员数组时,同样不允许用a={1,3,2,5,4}这种形式初始化成员数组的。

塘外人 2006-05-09
  • 打赏
  • 举报
回复
难道只能在构造函数中一个一个赋值?
据我的理解,应该可以在初始化列表中初始化?
不知道如何实现?

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧