1.对CD类的派生练习。基类CD类存储作者和作品号等信息,派生类Classic额外增加一格“主要作品”的信息。主函数使用拷贝构造函数、按引用传递参数的函数和指针来测试基类和派生类的功能。
注意继承类和基类的权限关系、初始化成员列表的使用。
class.h
#ifndef _CLASS_H_ #define _CLASS_H_ #include <iostream> using std::cin; using std::cout; class CD { private: char performers[20] = {}; //初始化为空,不然输出一堆烫 char label[20] = {}; int selections; double playtime; public: CD(const char *s1, const char*s2, int n, double x); //自定义构造函数 CD(const CD & d); //拷贝构造函数 CD(); //默认构造函数 virtual ~CD(); virtual void Report()const; virtual CD & operator = (const CD & d); }; class Classic :public CD { private: char collection[50] = {}; public: Classic(const char *c, const char *s1, const char*s2, int n, double x); Classic(); ~Classic(); void Report()const; Classic & operator = (const Classic & d); }; #endif
DefineClass.cpp
#include "class.h" CD::CD(const char *s1, const char*s2, int n, double x) { for (int i = 0; s1[i] != '