在C++中,函數(shù)模板可以很容易地應(yīng)對復(fù)數(shù)類型。你可以定義一個(gè)模板函數(shù),它接受任何支持加、減、乘、除和取共軛等基本運(yùn)算的類型。對于復(fù)數(shù)類型,這些運(yùn)算通常都是定義良好的。
下面是一個(gè)簡單的例子,展示了如何使用函數(shù)模板來處理復(fù)數(shù):
#include <iostream>
#include <complex>
// 函數(shù)模板定義
template <typename T>
T add(const T& a, const T& b) {
return a + b;
}
template <typename T>
T subtract(const T& a, const T& b) {
return a - b;
}
template <typename T>
T multiply(const T& a, const T& b) {
return a * b;
}
template <typename T>
T divide(const T& a, const T& b) {
return a / b;
}
int main() {
// 使用std::complex作為模板參數(shù)
std::complex<double> c1(3.0, 2.0);
std::complex<double> c2(1.0, 7.0);
std::complex<double> sum = add<std::complex<double>>(c1, c2);
std::complex<double> diff = subtract<std::complex<double>>(c1, c2);
std::complex<double> prod = multiply<std::complex<double>>(c1, c2);
std::complex<double> quot = divide<std::complex<double>>(c1, c2);
std::cout << "Sum: " << sum << std::endl;
std::cout << "Difference: " << diff << std::endl;
std::cout << "Product: " << prod << std::endl;
std::cout << "Quotient: " << quot << std::endl;
return 0;
}
在這個(gè)例子中,我們定義了四個(gè)模板函數(shù) add
、subtract
、multiply
和 divide
,它們分別用于執(zhí)行復(fù)數(shù)的加、減、乘、除運(yùn)算。然后,在 main
函數(shù)中,我們使用 std::complex<double>
作為模板參數(shù),并調(diào)用這些函數(shù)來處理復(fù)數(shù)。
注意,這個(gè)例子假設(shè)你已經(jīng)包含了 <complex>
頭文件,并且你的編譯器支持C++標(biāo)準(zhǔn)中定義的復(fù)數(shù)類型。如果你使用的是其他類型的復(fù)數(shù)庫,你可能需要調(diào)整模板函數(shù)的定義以適應(yīng)該庫的API。