|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 licker 于 2013-2-9 16:17 编辑
#include <iostream>
#include <string>
class Animal
{
public:
std::string name;
Animal(std::string thename);
~Animal();
void eat();
void sleep();
void drool();
};
//基类;
Animal::Animal(std::string thename)
{
name = thename;
}
Animal::~Animal()
{
std::cout << "析构器!" << std::endl;
}
void Animal::eat()
{
std::cout << "I'm eating!" << std::endl;
}
void Animal::sleep()
{
std::cout << "I'm sleeping, Don't distrub me!" <<std::endl;
}
void Animal::drool()
{
std::cout << "我是男的,看到女的会流口水..." <<std::endl;
}
//Pig子类;
class Pig : public Animal
{
public:
void climb();
void eat();
Pig(std::string thename);
};
void Pig::climb()
{
std::cout << "我是一头猪,会上树!" <<std::endl;
}
void Pig::eat()
{
std::cout << name << "小猪正在吃大象!" << std::endl;
}
Pig::Pig(std::string thename):Animal(thename)
{
}
//Trutle子类;
class Turtle : public Animal
{
public:
void swim();
void eat();
Turtle(std::string thename);
};
void Turtle::swim()
{
std::cout <<"我是一只小甲鱼,看到母猪会跳到水里!"<<std::endl;
}
void Turtle::eat()
{
std::cout<< name << "正在吃大鱼!!"<<std::endl;
}
Turtle::Turtle(std::string thename):Animal(thename)
{
}
//main函数;
int main()
{
Pig pig("小甲鱼 ");
Turtle turtle("T12333 ");
//去掉红色部分,上面改为:Turtle turtle(); 编译会出错,为啥?基类定义了带参数,子类就必需要定义的吗?//
pig.eat();
turtle.eat();
pig.climb();
turtle.swim();
return 0;
}
|
|