给类以double成员变量,出错.

redcola 2008-07-24 02:58:08
程序是
#pragma once

class jm
{
public:
jm(void);
~jm(void);

private:
public:

static const int jm_x0 =85;
static const double q_y0= 150;//渠画图原点
};
报错为
'q_y0' : only const static integral data members can be initialized inside a class or struct

为什么
...全文
112 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
redcola 2008-07-24
  • 打赏
  • 举报
回复
搞清楚了,谢谢.
bargio_susie 2008-07-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ququhu 的回复:]
在CPP文件里,加上
const double jm::q_y0= 150;
又会报错
error C2039: 'q_y0' : is not a member of 'jm'
[/Quote]

你需要在这个CPP文件里包含定义那个类的头文件拉。

#include "xxx"
xkyx_cn 2008-07-24
  • 打赏
  • 举报
回复
当然要声明:

// .h
class jm
{
public:
jm(void);
~jm(void);

private:
public:

static const int jm_x0 =85;
static const double q_y0;//渠画图原点
};

// .cpp
const double jm::q_y0= 150;


[Quote=引用 6 楼 ququhu 的回复:]
不需要在.H文件里面声明吗?

在CPP文件里,加上
const double jm::q_y0= 150;
又会报错
error C2039: 'q_y0' : is not a member of 'jm'

能不能写个例子,.H ,和.CPP文件的写法?
[/Quote]
redcola 2008-07-24
  • 打赏
  • 举报
回复
不需要在.H文件里面声明吗?

在CPP文件里,加上
const double jm::q_y0= 150;
又会报错
error C2039: 'q_y0' : is not a member of 'jm'

能不能写个例子,.H ,和.CPP文件的写法?
机智的呆呆 2008-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ququhu 的回复:]
如果想得到类型为double的成员变量,怎么办?

const double jm::q_y0= 150; 这放在哪里呢?
[/Quote]

类和main()
外面
xkyx_cn 2008-07-24
  • 打赏
  • 举报
回复
放在定义类的.cpp文件中即可

[Quote=引用 3 楼 ququhu 的回复:]
如果想得到类型为double的成员变量,怎么办?

const double jm::q_y0= 150; 这放在哪里呢?
[/Quote]
redcola 2008-07-24
  • 打赏
  • 举报
回复
如果想得到类型为double的成员变量,怎么办?

const double jm::q_y0= 150; 这放在哪里呢?
bargio_susie 2008-07-24
  • 打赏
  • 举报
回复
提示已经很明显了:

仅仅int型的static常量才能在类或者结构内初始化。
bargio_susie 2008-07-24
  • 打赏
  • 举报
回复
const double jm::q_y0= 150;

64,648

社区成员

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

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