回 帖 发 新 帖 刷新版面

主题:请教一个关于C++的头文件的问题,万分感谢

以下是我使用vc++2010写的 ,都是照书写的(孙鑫的vc++深入详解),我把cpp与.h的文件分开,下面红色标记的是问题,小弟万分感谢啊!

#ifndef ANIMAL_H_H             (这个是animal.h)
#define ANIMAL_H_H
class animal
{
public:
 animal();
 ~animal();
 void eat();
 void sleep();
 virtual void breathe();
#endif

 

#include "animal.h"                      (这个是fish.h)
#ifndef FISH_H_H
#define FISH_H_H
class fish:public animal
{
public:
 void breathe();
};
#endif

 

 

#include "animal.h"                                (这个是animal.cpp)
#include <iostream>

animal::animal(){}
animal::~animal(){}
void animal::eat(){}
void animal::sleep(){}
void animal::breathe()
{
 std::cout<<"animal breathe"<<std::endl;
}

 

#include "fish.h"                                  (这个是fish.cpp)
#include <iostream>
void fish::breathe()
{
 std::cout<<"fish buble"<<std::endl;
}

 

#include "animal.h"                                (这个是Ex10.cpp)
#include "fish.h"
void fn(animal *pAn)
{
 pAn->breathe();
}
int main()
{
 animal *pAn;
 fish fh;
 pAn=&fh;                  (这里提示说不能将animal::fish类型赋值给animal类型的实体,为什么呢??)
 fn(pAn);
}

 

回复列表 (共4个回复)

沙发


#ifndef ANIMAL_H_H (这个是animal.h)
#define ANIMAL_H_H
class animal
{
public:
animal();
~animal();
void eat();
void sleep();
virtual void breathe();
#endif

是你没复制好还是你没写,类没写结束符

#ifndef ANIMAL_H_H (这个是animal.h)
#define ANIMAL_H_H
class animal
{
public:
animal();
~animal();
void eat();
void sleep();
virtual void breathe();
};
#endif
这个可以编译通过我试过

板凳


非常谢谢你,我太粗心了,谢谢啦

3 楼

像你这种问题,建议你去问问堂在线咨询一下,或者到任务大厅发个任务,会有相关专业人事为你解答的。
问问堂成立于2010年,致力于打造中国领先的在线咨询交易平台。问问堂开设有健康、法律、心理、星座、命理、教育、创业、电脑数码、婚嫁、房产等等360行共31个一级分类,198个二级分类,1500余个三级分类,同时开设有问问堂任务大厅,力求使中国人足不出户解决一切烦恼。

4 楼


孙新太害人了

我来回复

您尚未登录,请登录后再回复。点此登录或注册