面试被囧到的一道题,贴出来与大家共享~
今天偶去面试,考官是一个牛人。本来觉得C++学的还可以,可是被考官面得丢盔卸甲,狼狈不堪,真是汗啊~。一下是一道面试题:
问:构造函数可以是虚函数吗?
答:不可以。
问:为什么?
答:因为一方面构造函数需要知道所要构造类的确切信息,所以不能是虚函数;另外,虚函数机制中,调用者必须是一个基类的对象的引用或指向该对象的指针。并不存在用这种机制调用构造函数的可能,所以即使构造函数被声明为虚函数也是没有用处的。
……
接下来问题就出来了。只见牛人考官眯起他那小眼睛说,还有其他原因吗?
我想了想,说我知道的就这些。
他笑眯眯的问我:一个构造函数都执行哪些操作?
答:首先调用基类的构造函数,构造对象的基类部分;然后再构造对象的派生类部分。
考官又笑了:还有呢?
还有?哎,我实在想不起来了。
考官于是笑眯眯的说:好吧,你可以回去去网上查查……
于是我的面试就OVER了。
一场面试下来,出了一身冷汗。倒不是因为紧张。而是感觉到自己平时学的东西在高手们面前竟都是些三脚猫的功夫,根本走不上几回合。悲哀啊~
PS:以上的问题有哪位高人可以指点一二,当感激不尽!