C++PrimerPlus(第6版)中文版:Chapter13.3多态公有继承例子(重点讲虚函数):usebrass2.cpp

本文通过一个C++程序示例展示了虚函数的使用场景和特点。在数组中,不同类型的对象(Brass和BrassPlus)通过指针进行管理,利用虚函数实现动态联编,使得调用正确的ViewAcct方法。程序运行时需要用户交互输入,根据输入创建不同类型的对象并执行相应的方法。如果ViewAcct未声明为虚函数,将无法正确调用子类的实现。此例子涉及到C++的动态类型和虚函数表概念。

上一个例子usebrass1.cpp中,方法是通过对象(而不是指针或者引用)来调用的,这个很清楚,也没有使用上虚函数的特性。本例子可以说明虚函数的使用场景和特点。

数组中所有元素的类型必须相同,而Brass 和BrassPlus是不同的类型。但是可以创建指向Brass的指针数组,这样每个元素的种类都相同,由于使用的是公有继承,指向Brass的指针也可以指向BrassPlus对象。

本例子的brass.h和brass.cpp 和usebrass1.cpp是一样的,这里就略过了。

usebrass2.cpp

// Chapter13.3usebrass2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include "brass.h"
const int CLIENTS = 4;

int main()
{
	// std::cout << "Hello World!\n";
	using std::cin;
	using std::cout;
	using std::endl;

	Brass* p_clents[CLIENTS];
	std::string temp;
	long tempnum;
	double tempbal;
	char kind;
	for (int i = 0; i < CLIENTS; i++)
	{
		cout << "Enter client's name: ";
		getline(cin, temp);
		cout << "Enter client's account number: ";
		cin >> tempnum;
		cout << "Enter opening balance : $";
		cin >> tempbal;
		cout << "Enter 1 for Brass Account or" << "2 for BrassPlus Account: ";
		while (cin >
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值