返回信息流我遇到的问题是这样的,在一个类中希望定义一个常量数组,如下
头文件a.h
class A
{
private:
static const int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
public:
A();
}
实现文件a.cpp
#include "stdafx.h"
#include "a.h"
A::A(){};
编译的时候总是在定义a[3][3]提示出错
error C2059: 语法错误 : “{”
error C2334: “{”的前面有意外标记;跳过明显的函数体
如果没有a.cpp文件,编译还能成功。一旦加了a.cpp就提示上述错误。请问,这是什么原因,请帮帮我,提示如此莫名奇妙的错误,都无从下手。
这是一条镜像帖。来源:北邮人论坛 / cpp / #32194同步于 2009/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教一个C++中定义常量数组的问题
anything
2009/11/26镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
类外初始化是在构造函数里面吗,下面的写法对吗?
A::A(){
a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
};
【 在 bingshan0424 的大作中提到: 】
: 单纯定义常量不需要加static, static是类公有的, 初始化时必须在类外进行
【 在 Raiden 的大作中提到: 】
: 在类外面初始化:
: const int A::a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
正解
啊,非常感谢,感恩节快乐
【 在 Raiden 的大作中提到: 】
: 在类外面初始化:
: const int A::a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
你好,我我这样做了后又出现了新的问题
error C2761: “const int A::a[3][3]”: 不允许成员函数重新声明,我在a.h中加的这句话
【 在 Raiden 的大作中提到: 】
: 在类外面初始化:
: const int A::a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};