gpt4 book ai didi

c++ - 模板和函数重载

转载 作者:搜寻专家 更新时间:2023-10-31 00:22:45 25 4
gpt4 key购买 nike

如果函数重载和模板服务于相同的目的,那么我们应该选择模板或函数重载中的哪一个,相应的好处是什么。

最佳答案

对于重载函数,您必须显式写出每个重载:

int max(int x, int y) { return x > y ? x : y; }
long max(long x, long y) { return x > y ? x : y; }
char max(char x, char y) { return x > y ? x : y; }
// etc.

这很乏味,但如果函数体需要根据类型而不同,这可能是有益的。

当相同的源代码可以用于任何类型时,模板是很好的。您指定模式,编译器根据需要生成扩展:

// Can be used with any type that supports ">".
template<typename T> T max(T x, T y) { return x > y ? x : y; }

关于c++ - 模板和函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2983091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com