C++,多态的原理分析
#include
#include
#include
#define MAX 1000
using namespace std;
//多态
//前提有继承关系
class animal
{
public:
//虚函数
virtual void speak()
{
cout<<"动物在说话"< } }; //重写 函数返回值类型 函数名 参数列表 完全相同 class cat:public animal { public: void speak() { cout<<"小猫在说话"< } }; class dog:public animal { void speak() { cout<<"小狗在说话"< } }; //执行说话的函数 //地址已绑定 在编译阶段确定函数地址 //猫说话 要地址晚绑定 void dospeak(animal &animal) { animal.speak(); } void test01() { cat cc; dospeak(cc); dog dd; dospeak(dd); } int main() { test01(); system("pause"); return 0; } c++ 类和对象 多态 多态的基本语法 #include #include #include #define MAX 1000 using namespace std; //多态 //前提有继承关系 class animal { public: //虚函数 virtual void speak() { cout<<"动物在说话"< } }; //重写 函数返回值类型 函数名 参数列表 完全相同 class cat:public animal { public: void speak() { cout<<"小猫在说话"< } }; class dog:public animal { void speak() { cout<<"小狗在说话"< } }; //执行说话的函数 //地址已绑定 在编译阶段确定函数地址 //猫说话 要地址晚绑定 void dospeak(animal &animal) { animal.speak(); } void test01() { cat cc; dospeak(cc); dog dd; dospeak(dd); } int main() { test01(); system("pause"); return 0; } C++,j计算器案例 #include #include #include #define MAX 1000 //利用多态实现计算器 //组织结构清晰 //可读行强 //对于前期和后期的扩展以及维护性高 using namespace std; class abstra { public: virtual int get() { return 0; } int m1; int m2; }; class add: public abstra { public: int get() { return m1+m2; } }; class sub:public abstra { public: int get() { return m1-m2; } }; void test02() { abstra *abc=new add; abc->m1=10; abc->m2=10; cout delete abc; } int main() { test02(); system("pause"); return 0; } 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)