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”也会使编译器在源代码中搜索