C++类的设计习惯及头文件重复包含问题的解决[组图](2)
代码如例2-24所示。
例2-24
animal.h
//在头文件中包含类的定义及类成员函数的声明
class animal
{
public:
animal();
~animal();
void eat();
void sleep();
virtual void breathe();
};
animal.cpp
//在源文件中包含类中成员函数的实现
#include "animal.h" //因为在编译animal.cpp时,编译器不知道animal到底是什么,所以要包含animal.h,这样,编译器就知道animal是一种类的类型
#include
""是表示先从当前目录搜索,然后是系统目录和PATH环境变量所列出的目录。所以如果我们知道头文件在系统目录下就可以直接用<>,这样可以加快搜索速度
animal::animal() //::叫做作用域标识符,用于指明一个函数属于哪个类或一个数据成员属于哪个类。
::前面如果不跟类名,表示是全局
{ 函数(即非成员函数)或全局数据
}
animal::~animal()
{
}
void animal::eat() //注意:虽然我们在函数体中什么也没写,但仍然是实现了这个函数
{
}
void animal::sleep()
{
}
void animal::breathe() //注意,在头文件(.h文件)中加了virtual后,在源文件(.cpp文件)中就不必再加virtual了
{
cout<<"animal breathe"< } fish.h #include "animal.h" //因fish类从animal类继承而来,要让编译器知道animal是一种类的类型,就要包含animal.h头文件 class fish:public animal { public: void breathe(); }; fish.cpp #include "fish.h" #include void fish::breathe() { cout<<"fish bubble"< } EX10.cpp #include "animal.h" #include "fish.h" void fn(animal *pAn) { pAn->breathe(); } void main() { animal *pAn; fish fh; pAn=&fh; fn(pAn); }
- 上一篇:CC++访问MySQL
- 下一篇:C++实现仿Office风格的颜色选取框代码





