单继承C ++和头文件

时间:2014-03-19 04:49:16

标签: c++ inheritance

我得到了

expected class-name before '{' token

在以下代码中

saltwaterfish.h头文件:

#ifndef SALTWATERFISH_H
#define SALTWATERFISH_H


class saltwaterfish: public fish
{
public:
    saltwaterfish();
    float GetUnitPrice();
    float GetWeight();
};

#endif // SALTWATERFISH_H

这是为

定义头文件的正确方法吗?

"咸水鱼是鱼的一个亚类" ?

我在saltwaterfish.cpp中唯一拥有的是

#include "fish.h"
#include "saltwaterfish.h"

fish.cpp类:

#include "fish.h"
#include <iostream>

#include "freshwaterfish.h"
#include "saltwaterfish.h"

using namespace std;

fish::fish()
{
};

float fish::CalculatePrice()
{
    return GetUnitPrice()*GetWeight();
}

float fish::GetUnitPrice()
{
    return 1.0;
}

float fish::GetWeight()
{
    return 1.0;
}

3 个答案:

答案 0 :(得分:2)

在saltwaterfish.h中包含fish.h头文件

//saltwaterfish.h
#include"fish.h"
#ifndef SALTWATERFISH_H
#define SALTWATERFISH_H


class saltwaterfish: public fish
{
public:
    saltwaterfish();
    float GetUnitPrice();
    float GetWeight();
};
#endif // SALTWATERFISH_H

编译器没有看到Fish是一个类,因此错误。

答案 1 :(得分:0)

你应该把

#include "fish.h"

在头文件中。 (saltwaterfish.h)

否则此代码将无法访问fish类。

祝你好运。

答案 2 :(得分:0)

错误意味着&#34; {之前应该是类名,但它不是。&#34;所以&#39; fish&#39;不是班级名称。寻找鱼类的声明,并确保在此声明之前加载它。