代码:
#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 begins
D begins
2
D ends
G ends
实际结果:G begins
D begins
2
D ends
G ends
学习体会:
我更进一步的知道了基类与派生类函数的执行顺序,还知道了++n与n++的区别,其分别为++n输出n加1之后的n,但是n++输出原来的n,但返回的n的参数是n加1之后的值。一般首选++n,因为前置++在原来的基础上进行操作,效率高,但是后置++,重新分配空间,既占空间,又消耗时间,所以效率低。
自我勉励:
I am the best!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!