C++Primer中的static疑问

ydzqw 2003-10-16 11:15:23
p527中:
作为特例,有序型的const静态数据成员可以在类体中用一常量值初始化。例如:
头文件
class Account
{
private:
static const int nameSize = 16;
static const char name[nameSize];
//...
};
文本文件
const int Account::nameSize;//
const char Account::name[nameSize] = "Savings Account";
...

我在VC中怎么试都不行,nameSize在类中初始化不合法。
why?
...全文
73 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jp311 2003-10-16
  • 打赏
  • 举报
回复
好象double也可以这样定义
有序型的const静态数据成员包括那写类型???
naibmys 2003-10-16
  • 打赏
  • 举报
回复
不应该将类的静态成员变量的初始化放在类里,应该在类外,因为类相当于一个模型,没有被分配内存。
williamVII 2003-10-16
  • 打赏
  • 举报
回复
VS.NET下可以通过.
建议楼主转用.NET.
北极猩猩 2003-10-16
  • 打赏
  • 举报
回复
符合C++标准,但是VC6不支持,可以这样
在类定义之外:
const int Account::nameSize = 16;
catface 2003-10-16
  • 打赏
  • 举报
回复
楼上都说完了 :)
反正学习C++的话 不要用VC BCB什么的 (这么说比较公正点)
个人推荐DEC C++
njSeeWhy 2003-10-16
  • 打赏
  • 举报
回复
你是用的VC++ 6.0吧。这是VC自己的问题,因为VC不允许在类里直接对static成员初始化。其实还有一些标准C++支持的语法VC 6.0也不支持,比如模板的偏特化等等,这也没办法,只能换一个编译器。
nirvana_li 2003-10-16
  • 打赏
  • 举报
回复
楼主的做法在新的C++标准中是可以的,主要是VC6支持不好,楼主换个编译器试试。我看VC7对标准的支持还不错。就是安装太慢了》》》...........

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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