#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
class Animal
{
public:
Animal() {};
Animal(string name){m_strName = name; cout << "Animal" << endl;}
virtual ~Animal(){cout << "~Animal" << endl;}
virtual void eat(){cout << "Animal--" << m_strName << "-- eat" << endl;}
virtual void move() = 0;
public:
string m_strName;
};
class Dog : public Animal
{
public:
Dog() {};
Dog(string name){m_strName = name; cout << "Dog" << endl;}
virtual ~Dog(){cout << "~Dog" << endl;}
virtual void eat(){cout << "Dog--" << m_strName << " -- eat" << endl;}
virtual void move(){cout << "Dog--" << m_strName << " -- move" << endl;}
public:
string m_strName;
};
int main(void)
{
Animal *dog = new Dog("狗类");
dog->eat();
dog->move();
delete dog;
dog = NULL;
return 0;
}
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
/**
* 定义射击类:CanShut
* 定义纯虚函数:aim、reload
*/
class CanShut
{
public:
virtual void aim() = 0;
virtual void reload() =0;
};
/**
* 定义枪类:Gun
* 公有继承射击类
* 实现成员函数:aim、reload
*/
class Gun : public CanShut
{
public:
virtual void aim()
{
cout << "Gun -- aim" << endl;
}
virtual void reload()
{
cout << "Gun -- reload" << endl;
}
};
/**
* 定义含参函数射击:hunting
* 调用参数的aim与reload函数
*/
void hunting(CanShut *s)
{
s->aim();
s->reload();
}
int main(void)
{
Gun *p = new Gun;;
hunting(p);
delete p;
p = NULL;
return 0;
}