问题及代码:
/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:zwj.cpp
*作 者:张伟晶
*完成日期:2016年5月10日
*版 本 号:v1.0
*
*问题描述:
*输入描述:
*程序输出:
*/
#include<iostream>
using namespace std;
class G
{
public:
static int m;
G( ){ //构造函数
m++;
cout<<"G begins\n";
}
~G( ) {
cout<<"G ends\n";
m--;
}
};
int G::m=0;
class D:public G
{
public:
D( ){ //构造函数
m++;
cout<<"D begins\n";
}
~D( ){
cout<<"D ends\n" ;
m-- ;
}
};
int main( )
{
D objg;
cout<<G::m<<endl;
return 0;
}运行结果:
过程分析:
//G是基类,D是G的派生类,公有继承。D objg ——>class D ——>class G ——>输出G begins,m=1
//——>class D——>输出D begins,m=2--->输出m的数值2——>逆序执行析构函数,分别输出D ends ,G ends .
1263

被折叠的 条评论
为什么被折叠?



