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

    技术2022-05-11  137

    今天上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();}

     

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

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


    最新回复(0)