Hierarquia de herança Pacote. Use a hierarquia de herança Pacote criada no Exercício 20.9 para criar um programa que mostre a informação de endereço e calcule os custos de remessa para vários Pacotes. O programa deverá conter um vector de ponteiros Pacote para objetos das classes PacoteDoisDias e Pacote-Noturno. Percorra o vetor para processar os Pacotes

polimorficamente. Para cada Pacote, chame funções get para obter a informação de endereço do emissor e do destinatário, depois imprima os dois endereços conforme apareceriam em etiquetas de correspondência. Além disso, chame a função-membro calculaCusto de cada

Pacote e imprima o resultado. Acompanhe o custo de entrega total para todos os Pacotes no vetor e mostre esse total quando o loop terminar.

Passo 1

Introdução

Vamos usar classes criadas no exercício 20.9 para usá-las polimorficamente dentro de um vetor de ponteiros Package.

Principal

Em primeiro lugar, o cabeçalho do arquivo:

#include

#include

#include

#include "TwoDayPackage.h"

#include "OvernightPackage.h"

using namespace std;

...

Passo 2

Declare e inicialize alguns pacotes e coloque-os em um vetor:

int main()

{

cout

TwoDayPackage twoDayPackage(

{"Phil Jones", "3476 Bryan Street",

"Dallas", "Texas", "39870"},

{"Jay Myers", "2191 Chicago Avenue",

"Chicago", "Illinois", "60622"},

3.5, 0.55, 5);

OvernightPackage overnightPackage(

{"Phil Jones", "3476 Bryan Street",

"Dallas", "Texas", "39870"},

{"Jay Myers", "2191 Chicago Avenue",

"Chicago", "Illinois", "60622"},

3.5, 0.55, 0.1);

vector packages;

packages.push_back(&twoDayPackage);

packages.push_back(&overnightPackage);

...

}

Agora, itere pelo vetor, emitindo etiquetas de endereçamento para destinatários e remetentes junto com o custo de envio.

Acompanhe o valor total do custo de envio e gere seu valor após o término do loop:

int main()

{

...

double sum = 0;

for (Package* package : packages)

{

cout getRecipientName()

getRecipientAddress()

getRecipientCity()

getRecipientState()

getRecipientZip()

cout getSenderName()

getSenderAddress()

getSenderCity()

getSenderState()

getSenderZip()

cout

calculateCost()

sum += package->calculateCost();

}

cout

}

É isso pessoal. Testem o código e veja o que acontece, podem mudar também o código ao seu prazer. Abraços!!!!

Resposta

Ver o desenvolvimento.