标题:请教大家一个问题
只看楼主
ringlord
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-5-30
结帖率:80%
 问题点数:0 回复次数:7 
请教大家一个问题
学习C++,有个题目是编写风扇的类,头文件
#include <string>
class Fan
{
public:
    Fan();
   
    double getSpeed();
    bool isOn();
    double getRadius();
    string getColor();
    void setSpeed(int);
    void setOn(bool);
    void setRadius(double);
    void setColor(string color);

private:
    int speed;
    bool on;
    double radius;
    string color;
};

头文件的实现是
#include "Fan.h"

Fan::Fan()
{
    speed = 1;
    on = false;
    radius = 5;
    color = string("blue");
}



int Fan::getSpeed()
{
    return speed;
}

bool Fan::isOn()
{
    return on;
}

double Fan::getRadius()
{
    return radius;
}

string Fan::getColor()
{
    return color;
}

void Fan::setSpeed(int speed)
{
    this ->speed = speed;
}

void Fan::setOn(bool on)
{
    this ->on = on;
}

void Fan::setRadius(double radius)
{
    this ->radius = radius;
}

void Fan::setColor(string color)
{
    this -> color = color;
};
编写了一个小测试主函数,总是编译出错,出错位置是头文件里的这句:string getColor();
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

请教大家这个怎么出错了?谢谢
搜索更多相关主题的帖子: public private include void double 
2012-04-02 20:42
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
它是说你有个函数没写返回值类型。C++ 里不支持默认返回值为int的这种假设。
但貌似没看见哪个函数没写呀。你双击一下那个错误,它会跳到出错的那一行上。你看看说的是哪。如果还是找不着错,就把跳转到的那行所在的位置在代码里标记一下,我们再帮你看看。
2012-04-02 20:54
ringlord
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-5-30
得分:0 
回复 2楼 pangding
非常感谢啊。这个编译错误就是指示头文件第十行,即string getColor(); 我这里是要返回一个string类的字符串,却显示了这个错误,不知是怎么回事。
2012-04-02 21:10
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
你改 std::string getColor(); 试试。
它之前是不是还有其它错误,比如说它不知道 string 是什么东西之类的?从而它也就不知道 getColor 返回的是什么。
2012-04-02 23:05
ringlord
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-5-30
得分:0 
回复 4楼 pangding
哎呀,太太太···感谢你了
得到你的提醒,我在Fan.h头文件中加了这句:using namespace std;编译通过,运行也对了。
头文件中有这句#include <string>,表示加了C++的string,不知为什么还要加上这一句using namespace std哦?
2012-04-03 12:44
q470341376
Rank: 2
等 级:论坛游民
帖 子:9
专家分:18
注 册:2012-3-31
得分:0 
应该C++软件默认的 我们老师就叫我们一开始就打上这句话 他也没有说为什么
2012-04-03 13:22
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
C++ 有名空间的概念。引用标准库里的组件需要使用名空间限定符,比如 std::string
一般不建议在 .h 里写 using namespace std。我前两天刚发的 学习标准库 的帖子里提到了这个问题,不过我写的那几篇文章不适合初学者看。
2012-04-03 20:32
ringlord
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-5-30
得分:0 
回复 7楼 pangding
非常感谢你的热心回答啊。我去找找并且拜读一下你写的贴子,学习学习
2012-04-03 21:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-365061-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.094919 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved