在有关 C++ 的书籍中,为什么在 C++ 中有模板可供我们使用时,我们要使用函数重载?
展示模板的有效(和正确)使用不是更好吗?与大多数 C++ 书籍中教授函数重载的地方相反?
或者,是否有充分的理由使用其中一个而不是另一个?
最佳答案
当您想对可能不同的类型执行相同的操作时,模板提供了一个优势。一个简单的例子:
template <typename T>
T foo(const T& a, const T& b) { return a + b; }
当你想根据类型应用不同的操作时,你可以使用重载:
struct Foo{ void foo() const {} };
void foo(int i) { std::cout << "i = " << i << "\n"; }
void foo(const Foo& f) { f.foo(); }
您可以使用模板和模板特化来实现上述目的,但这种特化应该代表一般情况下的一些异常(exception)情况。
关于c++ - 函数重载与函数模板 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331655/