4.16
4 4.17 (1,2) 5,6 (6,9) 4.18
class base1 class base2 class level2 class base2 class level1 class toplevel 4.19
#include
class table {
public:
table(int p, int q) {
i = p; j = q;
}
void ascii(void); protected: int i, j; };
void table::ascii() {
int k = 1;
for(; i <= j; i++) {
cout << setw(4) << i << \ \ << (char)i; if((k) == 0) {
cout << \; } k++; }
cout << \; }
class der_table:public table {
public:
der_table(int p, int q, char *m):table(p,q) {
c = m; }
void print(); protected: char *c; };
void der_table::print() {
cout << c <<\; table::ascii(); }
int main() {
der_table ob('a', 'z', \); ob.print(); return 0; }
4.20
#include
class area_c1 {
protected:
double height; double width; public:
area_c1(double r, double s) {
height = r; width = s; }
virtual double area() = 0; };
class rectangle : public area_c1 {
public:
rectangle(double r, double s):area_c1(r, s){} virtual double area(); };
double rectangle::area() {
return height * width; }
class isosceles : public area_c1 {
public:
isosceles(double r, double s):area_c1(r, s){} virtual double area(); };
double isosceles::area() {
return (height * width)/2;
}
int main() {
rectangle r(10, 5); isosceles i(4, 6); area_c1 *a; a = &r;
cout<< \矩形的面积是:\ << a->area() << endl; a = &i;
cout << \三角形的面积是:\ << a->area() < #include class Time { public: Time(int h, int m, int s) { hours = h; minutes = m; seconds = s; } void display() { cout << \出生时间:\ << hours << \时\ << minutes << \分\ << seconds << \秒\ << endl; } protected: int hours, minutes, seconds; }; class Date { public: