c++ Primer Plus(习题13.1)
/*13.1题的实现文件,书上的测试文件*/
//哪个方法不需要也根据实现而定,始终跟随客户的脚步
//这题细节方面被坑了,mainworks字符数组设置太小了,导致了一系列不可思议的问题
#include<iostream>
#include"classic.h"
using namespace std;
void Bravo(const Cd&disk);
int main()
{
Cd c1("Beatles","Capitol", 14, 35.5);
Classic c2 = Classic("Piano Sonata in B flat, Fantasia in C", "Alfred Brendel",
"Philips", 2, 57.17);
Cd *pcd = &c1; //这里是测试虚方法
cout << "Using object directly:\n";
c1.Roport();
c2.Roport();
cout << "Using type cd *pointer to objects:\n";
pcd->Roport();
pcd = &c2;
pcd->Roport();
cout << "Calling a funtion with a Cd reference argument:\n";
Bravo(c1); //这也是测试虚方法,由调用对象决定
Bravo(c2);
cout << "Testing assigment: \n";
Classic copy; //测试派生类的赋值运算符
copy = c2;
copy.Roport();
return 0;
}
void Bravo(const Cd&disk)
{
disk.Roport();
}
c++ Primer Plus(习题13.1)
/*13.1题的实现文件,书上的测试文件*/