C++ 单继承C++;和头文件

C++ 单继承C++;和头文件,c++,inheritance,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 //

我得到一份工作

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
这是定义的头文件的正确方法吗

“咸水鱼是鱼类的一个亚类”

我在咸水鱼里唯一的东西就是

#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;
}
#包括“fish.h”
#包括
#包括“freshwaterfish.h”
#包括“咸水鱼.h”
使用名称空间std;
鱼
{
};
浮鱼::CalculatePrice()
{
返回GetUnitPrice()*GetWeight();
}
浮鱼::GetUnitPrice()
{
返回1.0;
}
浮鱼::GetWeight()
{
返回1.0;
}
您应该

#include "fish.h"
在头文件本身中。(咸水鱼)

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


祝你好运。

在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是一个类,因此出现了错误。

错误的意思是“{之前的东西应该是一个类名,但它不是。”因此,“fish”不是类名。请查找fish类的声明,并确保在该声明之前加载了该声明。

能否在此处发布fish类的代码。可能缺少
。您是否对
咸水鱼.cpp
收到此错误?请删除
fish
构造函数主体后的分号。您的头文件不是自包含的。fish在头文件中没有定义。但是没有解释问题(除非它在不同的源文件中,问题中没有提到)。如果代码顶部的ndef SALTWATERFISH
表明此代码在SALTWATERFISH中。h@TanmayPatil把
“fish.h”放进去有区别吗
?是。意味着编译器将在所有include目录中搜索。另一方面,“fish.h”也会使编译器在源代码中搜索