问题及代码:
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张晴晴 *完成日期:2016年5月10日 *版 本 号:v1.0 * *问题描述:阅读程序,写出运行结果 *输入描述: *程序输出: */ #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; }
运行结果:
、
过程分析:主函数中声明了Derived型的一个对象 obj(1,2),进行构造函数,分别进行Base(1),d1(2)的构造函数,先进行Base(1)的构造输出C,在进行d1的构造输出A,(d1是类Date中的成员函数), Derived(int i,int j):Base(i),d1(j){cout<<"E";}按步骤输出CA后输出E,进行析构函数,先析构Derived(),再析构d1(2),Base(1),析构函数的过程中依次输出FBD,所以最后输出结果的顺序为CAEFBD。
时间: 2024-10-14 10:54:29