【发布时间】:2010-09-18 02:08:23
【问题描述】:
以下是“c++ 编程语言”中的几行
template<class T > T sqrt(T );
template<class T > complex<T> sqrt(complex<T>);
double sqrt(double);
void f(complex<double> z )
{
s q r t (2 ); // sqrt<int>(int)
sqrt(2.0) ; // sqrt(double)
sqrt(z) ; // sqrt<double>(complex<double>)
}
我不明白为什么 sqrt(z) ;请致电sqrt<double>(complex<double>) 任何机构请解释一下。
作者说,
T sqrt<complex<T>> 比 T sqrt <T> 更专业,但是 template<class T > complex<T> sqrt(complex<T>); 有一个单独的声明,为什么不使用它呢?
【问题讨论】:
-
对不起,我不明白 sqrt
(complex ) 表示复杂 sqrt >