C++ 如何为库定义具有默认值的标志?
我在单独的matrix.h和matrix.cpp文件中实现了以下功能:C++ 如何为库定义具有默认值的标志?,c++,C++,我在单独的matrix.h和matrix.cpp文件中实现了以下功能: void calc ( double* a, double* b, int r, int c, double (*f) (double) ) 输入参数a、r、c和f,输出参数b。a和b是具有r行和c行的二维矩阵 柱。f是一个函数指针,可以指向以下类型的任何函数: double function‐name ( double x ) { … } 函数calc将矩阵a中的每个元素(即aij)转换为矩阵b中的bi
void calc ( double* a, double* b, int r, int c, double (*f) (double) )
输入参数a、r、c和f,输出参数b。a和b是具有r行和c行的二维矩阵
柱。f是一个函数指针,可以指向以下类型的任何函数:
double function‐name ( double x ) {
…
}
函数calc将矩阵a中的每个元素(即aij)转换为矩阵b中的bij=faij
现在我想将源代码转换成一个名为matrix.a的静态库
但我希望这个库也包含一个名为do_round的布尔值,默认设置为false。什么时候
do_round为真,bij设置为bij=圆形faij
我能做什么?我的意思是,我必须这样做,如果用户没有在其程序中定义这个变量,或者定义了它,并且没有给它分配任何值,也就是说,没有初始化它或者定义它,并且给它分配一个真/假的值,那么我的程序工作正常。我该怎么办
这是my matrix.cpp的内容:
void calc(double* a,double* b,int r,int c ,double (*f) (double) )
{
double input;
double output;
for(int i=0;i<r*c;i++)
{
input=a[i];
output=(*f)(input);
b[i]=output;
}
}
在源文件中添加一个静态全局变量,以及一个设置该变量值的函数?为什么允许用户定义库使用的布尔变量?@JoachimPileborg mylibrary的源文件或用户程序?如果您指的是用户程序,我不能,我只能访问我的库。@Lingxi我如何限制他/她?如果作为库编写者,您已经定义了变量,用户也定义它将导致链接时间错误。这就是为什么作为用户,您不能定义std::cout。