c++ - 是否在 C++ 中使用 double() 函数?

标签 c++ function

我有以下 C++ 代码

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <time.h>
#include <math.h>

using namespace std;

#define pi 3.1415926

int n;
double* a,*b;
double Function(double);

double A(int j)
{
    double S=0;
    int ii;
    for (int i=-n;i<n+1;i++)
    {
        S=S+Function(2*pi*double(i)/(2*n+1))*cos(2*pi*double(j)*double(i)/(2*n+1));
    }
    if (j==0)
        return 1/double(2*n+1)*S;
    return 2/double(2*n+1)*S;
}

并且没有任何已声明的函数 double(),我在 math.h 库中查找此函数但没有找到。你能解释一下它是什么吗,它是 lambda 表达式还是某个委托(delegate)?

最佳答案

它不是一个函数,它是一个构造函数

double a(12.34);

构造double 类型的新实例。我相信,在 C++ 中,所有内置类型都有隐式构造函数。它们没有在任何地方特别定义,因为它们是语言的一个特性。

对于像double 这样的简单标量类型,它或多或少等同于

double a = 12.34;

(这是一个复制赋值操作),但是对于更复杂的类型,这两种形式肯定是不一样的。

关于c++ - 是否在 C++ 中使用 double() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23721851/

相关文章:

c# - 应用程序如何连接到系统范围内的文本选择?

c++ - Boost日志选择目标文件

c++ - 位对齐 访问任意位长度字节对齐缓冲区

javascript - 为什么我的递归 JavaScript 函数不返回字符串?

python - 从另一个函数调用一个函数内部定义的变量

c++ - 在 std::find 中使用来自不同命名空间的运算符

c++ - 为什么 int x = 01234 给出 x 的输出值为 668?

function - 在不重新启动内核以重新定义变量/函数的情况下在 Jupyter 中使用 Julia 的任何有效方法?

function - 一个函数是如何工作的

javascript - 从 div 调用 Javascript 函数