关闭

【C++ Primer】类的多态

发表于:2012-7-11 09:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:tianshuai11    来源:51Testing软件测试网采编

  一、概述

  1)接口的多种不同的实现方式即为多态。

  2)多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在C++中都是通过虚函数(Virtual Function) 实现的。

  3)关键点:多态还有个关键之处就是一切用指向基类的指针或引用来操作对象

  二、示例

  1)普通的对象操作方式

#include <iostream>
using namespace std;
class A{
public:
 void print()
 {
  cout<<"This is A"<<endl;
 }
};
class B:public A{
public:
 void print()
 {
  cout<<"This is B"<<endl;
 }
};
int main(){ //为了在以后便于区分,我这段main()代码叫做main1  
 A a;
 B b;
 a.print();
 b.print();
}

  输出:This  is  A

     This  is  B

  2)按照多态的操作对象方式:通过父类对象来操作子类对象

#include <iostream>
using namespace std;
class A{
public:
 void print()
 {
  cout<<"This is A"<<endl;
 }
};
class B:public A{
public:
 void print()
 {
  cout<<"This is B"<<endl;
 }
};
int main(){ //通过父类来操作子类
 A a;
 B b;
 A* p1=&a;
 A* p2=&b;
 p1->print();
 p2->print();
}

  输出:This  is  A

     This  is  A

  这跟我们预期的不一样。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号