C++的基类指针指向派生类对象,vector实现多态性

本文探讨了C++中基类指针指向派生类对象时,如何利用vector实现多态性。通过实例展示了在基类和派生类中定义同名同参函数时,如何正确调用派生类的函数。关键在于使用virtual关键字声明基类函数为虚函数,确保调用的是派生类的实现。同时,总结了四种函数调用场景,并指出在特定情况下如何强制调用基类或派生类的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加问题:

练手创建一个表示各种不同包裹的继承层次。

在写代码时:要求vector来实现多态性 , 用基类指针变量指向子类对象。


  前面的父类和子类定义:

//创建一个表示各种不同包裹的继承层次 
#include <iostream>
#include <algorithm>
#include <vector> 
#include<iomanip>//输出对齐头文件 
using namespace std;
 
struct people     //定义结构体存寄/收件人信息 
{
	string name;   //姓名 
	string state;       //省
};

class Package   //基类
{
private: 
	struct people sender;  //代表寄件人
	struct people rec;  //收件人信息 
	double unit_cost;     //每盎司费用 

public:
	double weight;    //存储包裹重量(以盎司计)
	double calculateCost();
	Package(struct people,struct people,double,double);    //构造函数 
	string Getsender();   //获得发送者的地址信息 
	string Getrecname();      //获得接收者的地址信息 
	double GetWeight();   //获得包裹重量,以供派生类使用 
	double GetCostPerOunce();      //获得每盎司费用,以供派生类使用 
};

//构造函数
Package::Package(struct people sender_,struct peopl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值