回答一道经典笔试题,大家可以进来看看!!

C++程序下列说法正确的有:
A,对调用的虚函数和模板类都进行迟后编译.
B,基类与子类中函数如果要构成虚函数,除了要求在基类中用virtual 声名,而且必须名字相同且参数类型相同返回类型相同
C,重载的类成员函数都必须要:或者返回类型不同,或者参数数目不同,或者参数序列的类型不同.
D,静态成员函数和内联函数不能是虚函数,友员函数和构造函数也不能是虚函数,但是析构函数可以是虚函数.
这道题网上有很多个版本的答案,先说在下 得出答案的原因:
A:迟后联编是典型的动态联编。编译期不确定具体调用的函数,在运行期中根据指针或引用实际所指的对象的类型信息来判断调用哪个函数,以实现类的非静态成员函数的多态性。虚函数和模板类都属于此类型。在下认为是正确的。
B:基类中用virtual,子类函数 必须名字、参数类型、返回类型 三者都相同。在下认为是正确的。
C:返回类型不同是不能构成虚函数的。其他在下认为是正确。
D:内联函数和友员函数不能是虚函数本人就不太清楚了望解答,其他在下认为是正确的。

在下的答案是A,B
========================================================================
要求各位达人,回答时先指出在下(得出答案的原因)是否正确,再写出自己的答案!!
很好。。。
在下 的答案是:A B
Kunono 的答案是:B
记住一座城 的答案是:A D
尹雪见晶 的答案是:D
期待各种答案。

答:A
***************************************************************************
解释:A正确无异议,B可以定义成员函数,C,D当类中有虚函数时用malloc申请内存出错
E,F结构中也可以有虚函数和继承关系
***************************************************************************
74,两个互相独立的类:ClassA 和 ClassB,都各自定义了非景泰的公有成员函数 PublicFunc() 和非静态的私有成员函数 PrivateFunc();
现在要在ClassA 中增加定义一个成员函数ClassA::AdditionalPunction(ClassA a,ClassB b);则可以在AdditionalPunction(ClassA x,ClassB y)的实现部分(函数功能体内部)
出现的合法的表达是最全的是:
A,x.PrivateFunc();x.PublicFunc();y.PrivateFunc();y.PublicFunc();
B,x.PrivateFunc();x.PublicFunc();y.PublicFunc();
C,x.PrivateFunc();y.PrivateFunc();y.PublicFunc();
D,x.PublicFunc();y.PublicFunc();
答:B
***************************************************************************
解释:共有私有是对别的类而言的,类A当然可以访问自己的所有成员,而不能访问类B的非共有成员
***************************************************************************
75,C++程序下列说法正确的有:
A,对调用的虚函数和模板类都进行迟后编译.
B,基类与子类中函数如果要构成虚函数,除了要求在基类中用virtual 声名,而且必须名字相同且参数类型相同返回类型相同
C,重载的类成员函数都必须要:或者返回类型不同,或者参数数目不同,或者参数序列的类型不同.
D,静态成员函数和内联函数不能是虚函数,友员函数和构造函数也不能是虚函数,但是析构函数可以是虚函数.
答:D
解释:A 虚函数时滞后绑定 ,B只有返回类型相同的话不能构成虚函数,C 只有返回值类型相同不能构成重载。D正确
因该是对的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-01
答案A,D
B."必须名字相同且参数类型相同返回类型相同" ,说的太绝对
virtual Base* Func() {} Deriend* Func(){} 这也构成了虚函数
C.仅仅是返回值不同,不能构成重载。
个人见解。

刚才看了一下网上的答案的A,
不过没给出解释,D中的友元函数可以是其他类的虚函数,我的见解。本回答被网友采纳
第2个回答  2012-12-11
虚函数使用函数指针实现的,可以返回父类或者子类的引用,引用就是用指针实现的,和虚函数的实现可以对应上。
inline的虚函数就失去虚属性。
友元函数是非函数成员,不能虚函数。
模板是编译时期确定。
第3个回答  2012-12-01
A我认为是错的,模板类不应该是迟后编译,在第一次编译的时候参数类型就已经确定了
B我认为是对的
C重载只有返回类型不同是不可以的,我在某书上看到过,编译器不能凭借左值确定调用哪个重载
D我也不清楚,但是构造函数不能使虚函数,析构可以使虚函数
以上是我的个人看法,不一定正确,除了C
第4个回答  2012-12-11
我选B
A不懂啥叫迟后编译,如果是指运行期绑定,我表示这个词汇编得蛋疼(谁告诉我“迟后编译”哪个发明的,英文叫什么?)。如果是运行期绑定,模板类不符合。
B没问题
C都懂
D有人说了友员可以是其他类虚函数。

这道题很无聊。
相似回答