关于类中const static类型的定义

fly44 2006-07-28 04:41:24
我在定义一个类的时候,尝试在其中定义一个变量并使其具有初值...因为一般的类中的变量不能赋值,所以我参照essential C++的例子,定义了一个const static int,并初始化,但是编译通不过。代码如下:



class ClassA
{
public:
ClassA();
private:
protected:
int _val ;
const static int _count = 0;//pure specifier can only be specified for functions
};

报错的意思也不是很清楚。。
请高人指点.

...全文
183 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cunsh 2006-07-29
  • 打赏
  • 举报
回复

c++标准支持的.
如果编译器不支持就用枚举的办法
class ClassA
{
enum { _count = 0 };
//....
};
gattso 2006-07-29
  • 打赏
  • 举报
回复
vc++6.0是不行的,编译器不支持.

C++标准是支持的
genius_hb 2006-07-29
  • 打赏
  • 举报
回复
不好意思,写错了,
静态常量整型成员是可以直接在类里面初始化的
不是定义,是初始化。不过还是要在类外加上定义const ClassA::_count;
genius_hb 2006-07-29
  • 打赏
  • 举报
回复
编译器问题,静态常量整型成员是可以直接在类里面定义的
sinall 2006-07-28
  • 打赏
  • 举报
回复
这个问题我遇到过!
那是VC的问题,gcc编译没问题的。
当然,通用的方法是:在cpp文件中定义这个const变量!
sharpdew 2006-07-28
  • 打赏
  • 举报
回复
暂时的标准不支持这样,不过下一个版本估计就可以了,呵呵!
pottichu 2006-07-28
  • 打赏
  • 举报
回复
TO: windking21(想玩玩WOW 真的那么难吗)

const static 变量是可以在类内部 定义和初始化 的。
pottichu 2006-07-28
  • 打赏
  • 举报
回复
这个用法是没有问题的。楼主看看是不是编译器的问题。
sakurako 2006-07-28
  • 打赏
  • 举报
回复
class ClassA
{
public:
ClassA();
private:
protected:
int _val ;
const static int _count;
};

const ClassA::_count = 0;
int main()
{
return 0;
}
sakurako 2006-07-28
  • 打赏
  • 举报
回复
从字面上看,编译器告诉你 pure 只能应用于定义纯虚函数
因为 = 0 相当于 pure
一般用来定义虚基类中的函数
PMsg 2006-07-28
  • 打赏
  • 举报
回复
const static int _count = 0;//

使用static修饰,静态变量还必须在类外定义和初始化

64,683

社区成员

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

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