2

我正在自学Bjarne Stroustrup(2008 年)的《编程原理和使用 C++ 的实践》一书。当我实施书中的练习时,我遇到了一个小问题。这里使用的 IDE 是 Visual Studio 2012 Ultimate。这里使用的项目类型是 Win32 控制台应用程序。

在本书的第 68 页,作者声称:

“<em>请注意,sqrt() 没有为 int 定义,因此将 n 分配给 double 并取其 sqrt()”</p>

但是,我发现它不符合我的实践代码作为 fowling:

// test if sqrt() a integer is working
#include "../../std_lib_facilities.h"

int main ()
{
    int a = 10;
    cout << "square root of 10 is " << sqrt(a) << endl;
    keep_window_open();

    return 0;
}

结果:

square root of 10 is 3.16228
Please enter a character to exit

问题:

为什么它像书中所说的那样工作?或者,我对“<em>sqrt() 没有为 int 定义”有错误的理解,如果是这样,那么解释它的正确方法是什么?

4

0 回答 0