首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++自定义类中数组的初始化有关问题

2012-09-14 
C++自定义类中数组的初始化问题刚接触C++,今天遇到个数组声名和初始化的问题,一直过不去,我简单叙述下A.h

C++自定义类中数组的初始化问题
刚接触C++,今天遇到个数组声名和初始化的问题,一直过不去,我简单叙述下

A.h 文件
class A
{
  private:
  const int a[3];
}

A.cpp 文件

 A::a[3]={1,2,3}; //在这里一直报错error C2761: “const int A::a[3]”: 不允许成员函数重新声明


如果改成在类中初始化,如下

A.h 文件
class A
{
  private:
  static const int a[3]={1,2,3};
}

A.cpp 文件

...


在数组声名和初始化一行就一直报错
error C2059: 语法错误 : “{” 
error C2334: “{”的前面有意外标记;跳过明显的函数体 


不知道是哪里的问题,或者自己写类的话要怎样定义和初始化数组?请各位高手给解答下

[解决办法]
#include<iostream>
using namespace std;



class Class
{
public:
static const int a[3];
}; 
const int Class::a[3] = {1, 2, 3};

int main()
{
Class clss;

cout<<Class::a[0]<<endl;
return 0;
}

[解决办法]
记住静态成员这样初始化:

C/C++ code
class A{public:   static const int a[3];};const int A::a[3] = {1,2,3};
[解决办法]
改用vector:

C/C++ code
class A{public:    A(int * values, int size): a(values, values+size)    {        }private:    std::vector<int const> a;};int some[] = {1,2,3};A a(some,3); 

热点排行