第十周-阅读程序

来源:互联网 发布:阿里云 负载均衡 使用 编辑:程序博客网 时间:2024/05/21 07:01

阅读程序1:

问题及代码;

/*copyright  计算机与控制工程学院完成日期:2016年5月6日作者:马艳艳问题描述:无输入描述:无输出描述:结果;*/#include <iostream>using namespace std;class Data{public:    Data(int i):x(i){cout<<"A";}//建立构造函数    ~Data(){ cout<<"B";}//建立析构函数private:    int x;};class Base{public:    Base(int i):b1(i){cout<<"C";}    ~Base(){ cout<<"D";}private:    int b1;};class Derived:public Base{public:    Derived (int i,int j):Base(i),d1(j){        cout<<"E";    }    ~Derived(){cout<<"F";}private:    Data d1;};int main(){    Derived obj(1,2);    return 0;}

运行结果:

知识点总结:

在构造函数的初始化列表中,先构造Base类的构造函数输出C,然后执行Data的构造函数输出A,然后输出E,接着程序执行完毕释放,执行析构函数,先析构Derived,输出F,后析构Data,输出B,接着析构Base,输出D

阅读程序2:

/*copyright  计算机与控制工程学院完成日期:2016年5月6日作者:马艳艳问题描述:无输入描述:无输出描述:结果;*/#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;}


运行结果:

知识点总结:

类B继承了类A,同时类A又是类B的数据成员  

  1. 在类B中的三个print是不一样的:  
  2. (1)表示类B中的一个成员函数  
  3. (2)表示用类名调用A类中的成员函数  
  4. (3)表示对象aa调用成员函数


0 0