杖举定义问题

skyerfree 2009-05-18 03:24:52
在一个头文件中声明一个杖举类型,如
enum NDim {_1d = 1, _2d = 2, _3d = 3};

然后在另一个头文件中定义一个类,类中声明一个静态NDim类型:
class ob {
static Ndim nd;
}
后面的头文件包含了前一个头文件.

为什么会出现链接错误?

但是如果我去掉static,就不会有错误。

按照我的理解,在第一个头文件中声明一个数据类型,用这个数据类型定义数据,应该就像声明和使用class一样的啊。为什么会出错呢?

...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlbbc2003 2009-05-18
  • 打赏
  • 举报
回复
好像没有错误吧?楼主的做法应该可以的。
coreyao1988 2009-05-18
  • 打赏
  • 举报
回复
顶LS
mengde007 2009-05-18
  • 打赏
  • 举报
回复
静态成员变量是全局性质的;不属于某一个对象;故拿出来定义一次;
pengzhixi 2009-05-18
  • 打赏
  • 举报
回复
在类外面再定义一次
Ndim ob::nd=_1d;
lpf000 2009-05-18
  • 打赏
  • 举报
回复
SF\
实现文件中 初始化了没有

65,203

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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