我有以下 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/