c++编写)使用在习题12.9中创建的Package类继承层次结构,创建一个用于显示若干Package的地址信息并计算其运输费用的程序。程序应该包含一个Package指针的vector对象,其中的指针指向TwoDayPackage 对象和OvernightPackage对象。遍历该vector对象,多态性地处理这些Package。对于每个Package调用获取函数,获得发送者和接收者的地址信息,然后打印输出这两个地址,就像它们出现在邮包标签上一样。此外,调用每个Package的calculateCost成员函数并输出结果。
时间: 2024-04-02 18:31:40 浏览: 80
好的,这是一个使用继承和多态的程序,主要功能是展示若干Package的地址信息并计算其运输费用。以下是程序的大致实现过程:
1. 定义基类 Package,并在其中定义发送者和接收者的地址信息以及重量和每盎司费用。
2. 定义派生类 TwoDayPackage 和 OvernightPackage,并在其中分别重载 calculateCost 函数以计算运输费用。
3. 创建 Package 指针的 vector 对象,并向其中添加 TwoDayPackage 和 OvernightPackage 对象的指针。
4. 遍历 vector 对象,对于每个 Package,调用其获取函数获得发送者和接收者的地址信息,并打印输出这两个地址。
5. 调用每个 Package 的 calculateCost 成员函数计算其运输费用,并输出结果。
下面是完整的程序代码:
相关问题
在C++中,如何创建一个具有多态特性的类继承结构,并解释其实现机制和应用价值?
在C++中实现一个具有多态特性的类继承结构,关键在于正确使用虚函数。为了帮助你理解这一过程,我推荐你查看《C++面试必备:面向对象与核心概念解析》。这本书详细解析了面向对象编程中的关键概念,包括封装、继承和多态,为你提供了一个坚实的知识基础。
参考资源链接:[C++面试必备:面向对象与核心概念解析](https://wenku.csdn.net/doc/2tcj1bx4jn?spm=1055.2569.3001.10343)
首先,定义一个基类,并在其中声明一个或多个虚函数。这些虚函数为后续的多态行为打下了基础。例如,一个基础的动物类(Animal)可能包含一个虚函数makeSound(),这个函数没有具体实现,仅作为接口存在。
```cpp
class Animal {
public:
virtual void makeSound() = 0; // 纯虚函数,定义接口
virtual ~Animal() {} // 虚析构函数,保证正确的资源释放
};
```
然后,派生类继承自基类,并重写(override)基类中的虚函数,实现具体的接口。例如,狗(Dog)和猫(Cat)类继承自Animal类,并提供自己的makeSound()实现。
```cpp
class Dog : public Animal {
public:
void makeSound() override {
std::cout <<
参考资源链接:[C++面试必备:面向对象与核心概念解析](https://wenku.csdn.net/doc/2tcj1bx4jn?spm=1055.2569.3001.10343)
如何在C++中实现一个简单的类,并使用该类创建对象并调用其成员函数?
在C++编程中,类是面向对象编程的基础,它允许我们封装数据和函数以模拟现实世界的对象。为了回答你关于如何在C++中实现类并使用其创建对象和成员函数的问题,我建议参考《C和C++程序设计教学课件第二版发布》中的相关章节。
参考资源链接:[C和C++程序设计教学课件第二版发布](https://wenku.csdn.net/doc/18bhrqkamz?spm=1055.2569.3001.10343)
首先,定义一个类需要使用class关键字,随后指定类名,并在花括号中编写成员变量和成员函数的声明。例如,定义一个简单的Student类可能看起来像这样:
```cpp
class Student {
public:
void setStudentName(string name) {
this->name = name;
}
void setStudentAge(int age) {
this->age = age;
}
void printStudentDetails() {
cout <<
参考资源链接:[C和C++程序设计教学课件第二版发布](https://wenku.csdn.net/doc/18bhrqkamz?spm=1055.2569.3001.10343)
阅读全文