首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于函数重载的一个重大有关问题!

2013-01-11 
关于函数重载的一个重大问题!!!!毫无疑问,多态是一种运行时特性。那函数重载呢?最近在写类时,用了大量重载

关于函数重载的一个重大问题!!!!
毫无疑问,多态是一种运行时特性。那函数重载呢?最近在写类时,用了大量重载函数,我在想,它究竟是在编译时决定所调用的函数体的地址还是在运行时决定的?  
如果是运行时决定的话,那使用重载函数岂不会造成额外开销?
如果是编译时决定的话,那所谓的重载函数不就是个语法糖而已?
[解决办法]
编译决定
就是一个语法糖而已。  搞这个有什么意义?
[解决办法]
编译期进行。通过叫做name mangling的技术对不同的重载函数进行改名。语法糖。
[解决办法]
本来就是重载~就是。
[解决办法]

引用
如果是运行时决定的话,那使用重载函数岂不会造成额外开销?
如果是编译时决定的话,那所谓的重载函数不就是个语法糖而已?

肯定是编译时决定,是语法糖,不会造成额外开销。编译后重载的函数名字是不同的。
[解决办法]
就是语法糖

Fun(int, int)
Fun(int, int, int)
编译器会生成
Fun_int_int(int, int)
Fun_int_int_int(int, int, int)

热点排行