读书人

C++再谈多态解决方案

发布时间: 2012-11-03 10:57:43 作者: rapoo

C++再谈多态
好了,面试官昨天刚问我C++多态,你怎么理解多态?
嗯,我的课本里写的一两句话我一直记得:多态分为编译时多态和运行时多态,编译时多态也就是函数的重载,运行时多态是虚函数云云
面试官说重载不是多态,嗯好吧。
我也曾在其他书上看到说函数重载不是多态的说法,但老衲相信谁去?
刚刚翻了翻我的课本,嗯,确实有编译时多态和运行时多态之说。
那。。。。。。
今天笔试题又问多态,老衲真的hold不住了

[解决办法]
名词之争,了解各方主张即可
[解决办法]
你应该回答多态的作用而不是实现细节。
[解决办法]

我一般提起多态就是虚函数了。不过貌似编译时多态也有哦,忘记了。

建议看看《C++ Primer》吧,看上面怎么说的。
[解决办法]
重载确实不是多态 背过C/C++的面试题的飘过
[解决办法]

探讨
好了,面试官昨天刚问我C++多态,你怎么理解多态?
嗯,我的课本里写的一两句话我一直记得:多态分为编译时多态和运行时多态,编译时多态也就是函数的重载,运行时多态是虚函数云云
面试官说重载不是多态,嗯好吧。
我也曾在其他书上看到说函数重载不是多态的说法,但老衲相信谁去?
刚刚翻了翻我的课本,嗯,确实有编译时多态和运行时多态之说。
那。。。。。。
今天笔试题又问多态,老衲真的hold不住了……

[解决办法]
多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器编译期间就可以确定函数的调用地址,并生产代码,是静态的,就是说地址是早绑定的。而如果函数调用的地址不能在编译器期间确定,需要在运行时才确定,这就属于晚绑定。

读书人网 >C++

热点推荐