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