主题:请教一个关于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);
}