c++ 声明与定义
今天看《c++ primer》,作者建议头文件中写变量声明,在源文件中定义变量。我有个程序是这样的,我建立了2个头文件 (fish.h,animal.h)3个源文件(fish.cpp,animal.cpp,main.cpp)
我在animal.h 中声明了 animal 类 : 如 class animal;
fish.h 中声明了 fish类: 如 class fish;
我分别在它们对应的源文件中定义数据类型;
animal.cpp的内容 :
#include<iostream>
#include"animal.h"
using std::cout;
class animal
{
public:
animal();
~animal();
void eat(){cout<<"animal can eat something.";}
void sleep(){cout<<"animal need sleeping.";}
};
animal::animal()
{cout<<"构造了一只动物\n";}
animal::~animal()
{cout<<"销毁了一只动物\n";}
fish.cpp的内容如下:
#include<iostream>
#include"animal.h"
#include"fish.h"
using std::cout;
class fish :public animal
{
public:
fish();
~fish();
void swim(){cout<<"fish can swim."<<endl;}
private:
int tall;
};
fish::fish()
{cout<<"构造了一只鱼\n";}
fish::~fish()
{cout<<"销毁了一只鱼\n";}
最后main .cpp的内容如下:
#include<iostream>
#include"fish.h"
#include"animal.h"
using namespace std;
int main()
{
fish myfish;
myfish.eat();
myfish.swim();
return 0;
}
编译没有通过,提示 fish animal 没有定义 ,该怎么改?
[ 本帖最后由 xlhcy2014 于 2014-3-24 20:49 编辑 ]