定义一个哺乳动物Mammal类,再由此派生出狗Dog类,二者都定义 Speak()成员函数,基类中定义为虚函数,定义一个Dog类的对象,调用Speak函数,观察运行结果
来源:互联网 发布:java多线程安全问题 编辑:程序博客网 时间:2024/06/06 15:02
class Mammal
{
public:
Mammal(){cout<<"Mammal"<<endl;}
virtual void speak(){}
virtual ~Mammal()
{
cout<<"~Mammal::speak()"<<endl;
}
};
class Dog:public Mammal
{
public:
Dog(){cout<<"Dog"<<endl;}
virtual void speak()
{
cout<<"Dog::speak"<<endl;
}
~Dog()
{
cout<<"~Dog::speak()"<<endl;
}
};
void main()
{
Mammal *p;
p=new Dog;
p->speak();
//(*p).speak();
delete p;
p=NULL;
{
public:
Mammal(){cout<<"Mammal"<<endl;}
virtual void speak(){}
virtual ~Mammal()
{
cout<<"~Mammal::speak()"<<endl;
}
};
class Dog:public Mammal
{
public:
Dog(){cout<<"Dog"<<endl;}
virtual void speak()
{
cout<<"Dog::speak"<<endl;
}
~Dog()
{
cout<<"~Dog::speak()"<<endl;
}
};
void main()
{
Mammal *p;
p=new Dog;
p->speak();
//(*p).speak();
delete p;
p=NULL;
}
运行结果:
如若基类的析构函数不写关键字virtual,则只会调用基类的析构函数,不会调用派生类的析构函数
阅读全文
1 0
- 定义一个哺乳动物Mammal类,再由此派生出狗Dog类,二者都定义 Speak()成员函数,基类中定义为虚函数,定义一个Dog类的对象,调用Speak函数,观察运行结果
- 声明一个哺乳动物类Mammal,再由此派生出狗类Dog,二者都定义Speak()成员函数,基类中定义为虚函数,声明类Dog的一个对象,调用函数Speak()
- 定义一个Shape抽象类,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积,GetPerim()函数计算对象的周长
- 定义一个Pet类,定义Cat,Dog,为子类继承Pet类。
- 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数
- 父类中调用自身定义的虚函数,其中若修改派生类定义的变量,无效
- 【6.13】 定义基类Base,其数据成员为高h,定义成员函数disp为虚函数。然后再由High派生出长方体类Cuboid与圆柱体类Cylinder。并在两派生类中定义成员函数disp为虚函数。在主函
- C#--第四周实验--任务3--定义一个人员类Cperson,在此基础上派生出学生类CStudent和教师类CTeacher,实现输入输出功能的成员函数。
- C++ 派生类虚函数定义---注意事项
- 【面向对象程序设计常见面试题】如何定义和实现一个类的成员函数为回调函数?
- !!!!!!!!!!!!!!!!C++:派生类中重定义基类的成员函数与虚函数区别在哪里?
- 如何定义和实现一个类的成员函数为回调函数
- 如何定义和实现一个类的成员函数为回调函数
- 如何定义和实现一个类的成员函数为回调函数
- 如何定义和实现一个类的成员函数为回调函数
- 定义和实现一个类的成员函数为回调函数
- 如何定义和实现一个类的成员函数为回调函数(转)
- 如何定义和实现一个类的成员函数为回调函数?
- request.getServletContext()的问题
- 在安全管理的Hard模式中,当一个好“玩家”
- 设计模式之代理模式-------动态代理
- HDU 6047 Maximum Sequence(多校2)
- Activiti学习之用户与组
- 定义一个哺乳动物Mammal类,再由此派生出狗Dog类,二者都定义 Speak()成员函数,基类中定义为虚函数,定义一个Dog类的对象,调用Speak函数,观察运行结果
- 451. Sort Characters By Frequency
- 简易计算器的实现
- 设计模式-17-命令模式
- Unity学习之路——VideoPlayer
- day3-oracle
- codeforce678E
- 数据结构实验之栈六:下一较大值(二)
- case语句的使用