我谈给类成员数组进行大批赋值的方法

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

今天上QQ,有一个朋友问我怎么样给一个类的成员变量[是数组]赋初值。

比如:

class CTest

{private:

int m_arr[10];

……

};

如果想给成员m_arr[]数组赋初值,怎么办呢?

我试过

CTest():m_arr({1,2,3,4……})

编译通过不了,出现错误:

cannot specify explicit initializer for arrays

不能给数组指定明显的初始化。

我然后告诉他试试在构造函数内部赋值,他说

如果这样

CTest()

{

m_arr[0] =

m_arr[1] =

……

}

太烦了。

如果

CTest()

{

m_arr = {1,24,44,……};

}

又编译不了。

我想了一下,就采用了这个办法:

#include <conio.h>

#include <stdio.h>

#include <iostream.h>

#include <string.h>

#include <Afxwin.h>

class CTest

{

private:

int m_arr[10];

public:

CTest()

{

int tempArr[10] = {1,2,3,4,6,6,7,5,8,2};

memcpy(m_arr,tempArr,sizeof(tempArr));

}

void Disp()

{

for(int i = 0;i<10;i++)

{

cout<<"m_arr["<<i<<"]="<<m_arr[i]<<endl;

}

}

};

void main(void)

{

CTest t;

t.Disp();

}

结果编译通过,结果正确。

不知大家遇到这种情况时,如何处理?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航