1、类
Animal.h
Animal.cpp
Fish.h
Fish.cpp
Main.cpp
ps:罗嗦两句,头文件中的类声明中
Animal.h
#ifndef ANIMAL_H_H
#define ANIMAL_H_H
/**
*定义Animal 基类
*头文件 类中方法 只声明 不实现。
*/
class Animal{
public:
Animal();
~Animal();
virtual void eat();//虚函数
virtual void run();//
};
#endif
Animal.cpp
#include "Animal.h"
#include <iostream.h>
/**
*构造函数
*/
Animal::Animal(){}
/**
*析构函数
*/
Animal::~Animal(){}
/**
*普通函数,吃的函数。(其实这些函数没意义,因为子类要重新实现这些函数!)
*/
void Animal::eat(){
cout<<"动物吃"<<endl;
}
/**
*普通函数,跑的函数。
*/
void Animal::run(){
cout<<"动物跑"<<endl;
}
Fish.h
#include <iostream.h>
#include "Animal.h"
#ifndef FISH_H_H
#define FISH_H_H
/**
*鱼,这个类继承 动物!
*/
class Fish:public Animal{
public:
Fish();
~Fish();
void eat();
void run();
};
#endif
Fish.cpp
#include "Fish.h"
/**
*如果头文件中声明了构造函数和析构函数,则必须实现。
*/
Fish::Fish(){}
Fish::~Fish(){}
void Fish::eat(){
cout<<"鱼吃"<<endl;
}
void Fish::run(){
cout<<"鱼跑"<<endl;
}
Main.cpp
#include "Fish.h"
void main(void){
/*类的第一种调用方法:*/
//Animal *pan=new Animal();
//pan->eat();
//pan->run();
(*pan).eat();
(*pan).run();
//结论:对象使用'.'操作符;指针使用'->'操作符。
/*类的第二种调用方法:*/
//Animal *pan;
//Animal an;
//pan=&an;
//pan->eat();
//pan->run();
/*多态*/
Animal *pan;
Fish f;
Animal an;
pan=&f;
// pan=&an;
pan->eat();
pan->run();
}
ps:罗嗦两句,头文件中的类声明中
class T {
//do what you want to do!
};//一定不要忘了这操蛋的分号,我真想骂街!!!