第12周 程序阅读-多重继承1

#include <iostream>
using namespace std;
class A
{
public:
    A()
    {
        a=0;
    }
    A (int i)
    {
        a=i;
    }
    void print()
    {
        cout<<a<<"  ";
    }
private:
    int a;
};
class B: public A
{
public:
    B()
    {
        b=0;
    }
    B(int i, int j, int k): A(i),aa(j)
    {
        b=k;
    }
    //思考:这3处出现的print,有何区别
    void print()      //(1)
    {
        A::print();   //(2)
        aa.print();   //(3)
        cout<<b<<endl;
    }
private:
    int b;
    A aa;
};
int main()
{
    B test[2];
    test[0]=B(1,4,7);
    test[1]=B(2,5,8);
    for(int i=0; i<2; i++)
        test[i].print();
    return 0;
}

运行结果:

第一个是调用积累成员函数

第二个是调用子对象成员函数

第三个是输出自身成员

时间: 2024-08-06 11:56:34

第12周 程序阅读-多重继承1的相关文章

第12周 程序阅读-多重继承4

#include<iostream> using namespace std; class A { public: int n; }; class B:public A {}; // class B:virtual public A{}; class C:public A {}; // class C:virtual public A{}; class D:public B,public C { public: int getn() {return B::n;} }; int main() {

第12周 程序阅读-多重继承3

#include <iostream> using namespace std; class Base { public: Base(char i) { cout<<"Base constructor. --"<<i<<endl; } }; class Derived1:virtual public Base { public: Derived1(char i,char j):Base(i) { cout<<"Der

第12周 《C++语言基础》程序阅读——多重继承(3)

问题描述: (2)阅读程序,写出执行结果 #include <iostream> using namespace std; class Base { public: Base(char i) { cout<<"Base constructor. --"<<i<<endl; } }; class Derived1:virtual public Base { public: Derived1(char i,char j):Base(i) {

第12周 《C++语言基础》程序阅读——多重继承(1)

问题描述: (1)阅读程序,写出执行结果 #include <iostream> using namespace std; class A { public: A() { a=0; } A (int i) { a=i; } void print() { cout<<a<<" "; } private: int a; }; class B: public A { public: B() { b=0; } B(int i, int j, int k):

第12周 《C++语言基础》程序阅读——多重继承(2)

问题描述: (2)阅读程序,写出执行结果 #include <iostream> using namespace std; class A { public: A(char *s) { cout<<s<<endl; } }; class B:public A { public: B(char *s1, char *s2):A(s1) { cout<<s2<<endl; } }; class C:public A { public: C(char

第12周 《C++语言基础》程序阅读——多重继承(4)

问题描述: (4)阅读程序,写出执行结果,并回答问题     #include<iostream> using namespace std; class A { public: int n; }; class B:public A {}; // class B:virtual public A{}; class C:public A {}; // class C:virtual public A{}; class D:public B,public C { public: int getn()

第12周 《C++语言基础》程序阅读——多重继承(5)

问题描述: (5)阅读下面类的定义,请说出在测试函数中不同情况的调用产生的结果   <span style="font-family:KaiTi_GB2312;font-size:18px;color:#ff6666;"><strong>#include <iostream> using namespace std; class A { protected: int a,b; public: A(int aa, int bb):a(aa), b(bb

第九周 程序阅读-学生信息管理系统

阅读程序"简单C++学生信息管理系统",找出其中出现构造函数.友元函数.运算符重载.静态数成员语法现象出现的位置,仔细体会其用法,在以后的设计中能够灵活应用有关方法和技巧. #include <iostream> #include <cstring> using namespace std; #define MAX 100 class CDate // 定义日期类 { private: unsigned short int year; // 年 unsigned

第15周 程序阅读-二进制文件及文件的读取1

1.阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法).查看其内容,并理解文件存储的原理. (1) #include <iostream> #include <fstream> #include <cstdlib> using namespace std; int main( ) { int a; ofstream outfile("f1.dat",io