此次笔试的是gameloft的深圳工作室. 题目是全英文的, 表示不淡定,有些没看懂.不过看懂的考题都不怎么难,相对简单. 题目都是翻译后的.
1.为什么需要有虚析构函数, 虚析构函数有什么作用.
2.以下代码的输出是什么?
#include <iostream>
class A
{
public:
A(){std::cout<<1<<std::endl;}
~A(){std::cout<<2<<std::endl;}
void p(){std::cout<<3<<std::endl;}
};
class B:A
{
public:
B(){std::cout<<4<<std::endl;}
virtual ~B(){std::cout<<5<<std::endl;}
virtual void p(){std::cout<<6<<std::endl;}
};
class C:B
{
public:
C(){std::cout<<7<<std::endl;}
virtual ~C(){std::cout<<8<<std::endl;}
virtual void p(){std::cout<<9<<std::endl;}
};
int main()
{
A* a = (A*)new B;
a->p();
B* b=(B*)new C;
b->p();
delete b;
delete a;
}