考试题,哪位大侠帮忙搂搂??谢谢!!

swazn_yj 2013-03-12 03:27:22
二)、分析下面的代码,回答问题(每题 10 分,共 40 分)
1.下面程序的执行结果是什么?为什么?
class B{
protected:
virtual void f( ){cout<<"B"<<endl;}
public:
void g( ){f( );}
};
class C:public B{
protected:
void f( ){cout<<"C"<<endl;}
};
void main( ) {
C d;
d.g( );
}

2.下面程序的执行结果是什么?为什么?
class BC {
public:
BC( ) { cout << "BC' constructor\n"; }
~BC( ) { cout << "BC' destructor\n"; }
};
class DC : public BC {
public:
DC( ) { cout << "DC' constructor\n"; }
~DC( ) { cout << "DC' destructor\n"; }
};
int main( ) {
DC d;
return 0;
}

3. 下面程序的执行结果是什么?为什么?
void main()
{
char* pn[]={"Fred","Barney","Wilma","Betty",NULL};
print(pn);
}
void print(char* arr[])
{
while(*arr!=NULL){
cout << *arr <<endl;
arr++;
}
}

4.下面程序的执行结果是什么?为什么?

class B
{
int b;
public:
B(){};
B(int i){b=i;};
virtual void func()
{
cout<<"B::func() called"<<endl;
}
};

class D:public B
{
public:
D(){};
D(int i, int j):B(j){d=j;}
private:
int d;
void func()
{
cout<<"D::func() called"<<endl;
};
};
void gfunc(B *obj)
{
obj->func();
}

void main()
{
D *pd=new D;
gfunc(pd);
}
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
跳动的字符 2013-03-13
  • 打赏
  • 举报
回复
楼上正解,自己调试跟踪最可靠~
sublimepan 2013-03-12
  • 打赏
  • 举报
回复
对照书上基础知识,调试跟踪一把,不就都明了了
  • 打赏
  • 举报
回复
1. C // 派生类把基类的函数覆盖了 2. BC'constructor // 这个考察对象的构造和析构的顺序吧    DC' constructor    DC' desctructor    BC' Destrunctor 3. Fred // 指向指针的指针的使用 Barney Wilma Betty 4. D::func() called // 派生类把基类的函数覆盖了
赵4老师 2013-03-12
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
mujiok2003 2013-03-12
  • 打赏
  • 举报
回复
5, D::func() called C++的动态性。
mujiok2003 2013-03-12
  • 打赏
  • 举报
回复
3, 打他pp, 还在用void main() Fred Barney Wilma Betty
swazn_yj 2013-03-12
  • 打赏
  • 举报
回复
为什么?为什么?
mujiok2003 2013-03-12
  • 打赏
  • 举报
回复
2,构造函数调用顺序,类似于LIFO BC'constructor DC' constructor DC' desctructor BC' Destrunctor
mujiok2003 2013-03-12
  • 打赏
  • 举报
回复
1, C。 这一个设计模式--模板方法。
faith_boys 2013-03-12
  • 打赏
  • 举报
回复
C++啊 没学过 帮顶一次
swazn_yj 2013-03-12
  • 打赏
  • 举报
回复
自顶一次!自顶一次!

64,646

社区成员

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

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