当前位置:编程学习 > VC++ >>

VC++程序题目

#include<iostream.h>
class A{
private:

public:
A(){cout<<"A"<<endl;}
};
class B:public A
{
public:
B(){cout<<"B"<<endl;}
};
void main(void)
{
A aa;
B bb;
}
运行结果是A A B请解释下,
答案:
#include<iostream.h>
class A{
private:

public:
A(){cout<<"A"<<endl;}
};
class B:public A
{
public:
B(){cout<<"B"<<endl;}
};
void main(void)
{
A aa;//会调用A(){cout<<"A"<<endl;}

B bb;//会调用A(){cout<<"A"<<endl;}然后B(){cout<<"B"<<endl;} 他会先调用基类的构造函数


}
执行main函数后
A aa;
B bb
第一句是创建类A在实例,此时调用A的构造函数输出A
第二句是创建类B在实例,类B继承A,所以在调用B在构造函数前先调用类A的构造函数,此时输出A,然后在调用B的构造函数输出B
只要记住若一个类是另一个类的子类的话,都是先调用父类胡构造函数,然后再调用自己的构造函数
来晚一步,楼上正解
记住,派生类构造对象的时候,会先调用基类的构造函数

上一个:VC++程序源代码?
下一个:VC++安装路径

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,