构造函数的问题 新东方面试题

navyblue1982 2006-12-08 01:06:36
class a
{
public:
a(){cout<<"a"}
};
class b()
{
b(){cout<<"b"}
};
class c :public a
{
public:
a classa;
c(){cout<<"c"}
};

int main()
{
c classc;
return 0;
}

问执行结构多少?
需要你们说出原理
...全文
413 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gapwind 2006-12-08
  • 打赏
  • 举报
回复
aac
拿节 2006-12-08
  • 打赏
  • 举报
回复
我想问问lz
那代码里的class b是干什么用的?
是不是写错!
既然考你类的初始化次序,然后输出两个a
那就没意义了!
个人感觉LZ写错了!
class c :public a 应该改为class c :public b
还有class b怎么还带个(),无语,构造还是私有的,还的改
class b
{
public:
b(){cout<<"b"}
};
呵呵!
然后输出bac.

先构造基类对象,然后是成员对象,然后本身。
sclarkca810619 2006-12-08
  • 打赏
  • 举报
回复
aac VC++6.0 WindowsXP
wangyi010704327 2006-12-08
  • 打赏
  • 举报
回复
你这个程序段放到编译器是不能编译成功的,全是错误
oowgsoo 2006-12-08
  • 打赏
  • 举报
回复
这是个很简单的问题,基类先初始化,然后再初始化本身,这应该没有问题,可能有点模糊的是基类先初始化,还是嵌套类先初始化,其实稍微想想就知道了,当然还是基类先初始化了,没有基类,根本就不会有派生类,嵌套类毕竟还是在派生类的层次的
rongcanf 2006-12-08
  • 打赏
  • 举报
回复
我在机子上调试了一下,结果为aac,环境为DEV C++
原理如下:
首先,调用基类a的构造函数输出a
接着,调用成员classa的构造函数,输出a
最后,调用自身的构造函数,输出c
expter 2006-12-08
  • 打赏
  • 举报
回复
aac
wangyi010704327 2006-12-08
  • 打赏
  • 举报
回复
关于这个问题,我觉得main中只是声明一个c类,并没有初始化,所以应该直接返回0结束,前面的类都是迷惑你的
guochun 2006-12-08
  • 打赏
  • 举报
回复
以下代码用来确定是先执行继承类的构造函数还是内含类的构造函数
#include <iostream>
using namespace std;
class a
{
public:
a(){cout<<"a"<<endl;}
a(int x){cout<<"ax"<<endl;}
};
class b
{
public:
b(){cout<<"b"<<endl;}
};
class c :public a
{
public:
a classa;
c():a(2){cout<<"c"<<endl;}
};

int main()
{
c classc;
return 1;
}
taodm 2006-12-08
  • 打赏
  • 举报
回复
看《深度探索c++对象模型》
不过,既然自称很懒,就随便吧。
navyblue1982 2006-12-08
  • 打赏
  • 举报
回复
那怎么确定是先执行继承类的构造函数还是内含类的构造函数??????????????????
taodm 2006-12-08
  • 打赏
  • 举报
回复
原理尽在《深度探索c++对象模型》
guochun 2006-12-08
  • 打赏
  • 举报
回复
aac
0黄瓜0 2006-12-08
  • 打赏
  • 举报
回复
第一步,调用基类a的构造函数输出a
第二步,调用成员classa的构造函数,输出a
第三步,调用自身的构造函数,输出c
navyblue1982 2006-12-08
  • 打赏
  • 举报
回复
说出原理者马上给分

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧