【发布时间】:2013-09-24 18:28:44
【问题描述】:
我正在实现的类有问题。
typedef enum
{
YELLOW,
GREEN,
BLUE
} COLOUR;
class Stream
{
public:
Stream();
~Stream();
double getRate(COLOUR colour);
private:
double yrate;
double grate;
double brate;
};
Stream::Stream()
{
yrate = 2.2;
grate = 3.3;
brate = 4.4;
}
Stream::~Stream()
{
}
double Stream::getRate(COLOUR colour)
{
double rate;
switch(colour)
{
case YELLOW:
rate = yrate;
break;
case GREEN:
rate = grate;
break;
case BLUE:
rate = brate;
break;
}
return rate;
}
我正在使用 Visual C++ 2010 Express,我无法编译它,因为错误是: '错误:声明与“double Stream::getRate(COLOUR colour)”不兼容
是我遗漏了什么,还是我混淆了某些顺序?
提前致谢。
【问题讨论】:
-
好像编译没有问题:codepad.org/OUS36Z3g
-
编写枚举的更多 C++ 方式是
enum COLOUR { ... };。但是,您提供的代码在所有三个版本的 Visual Studio 中都能正常编译,这表明问题在于您未粘贴的代码存在冲突。 -
@kfsone 我把它作为项目中的一个单独的头文件,即使没有其他任何内容,intellisense 也会告诉我这个错误。
-
是的,但是这段代码本身不是问题,可能在其他地方有“COLOUR”或“getRate”的定义。制作一个干净的项目,从您的帖子中粘贴到其中,添加一个简单的 main 并编译。然后开始从你的项目中添加代码,看看它什么时候中断。
标签: c++ visual-studio-2010 class compiler-errors