如何在C++中集成函数
How do I integrate a function in C++
我正在学习C++,但没有找到以下问题的答案:
我有一个公式,可以根据用户输入计算两个数字的结果.
- 包含此公式的头文件(".h")应该是什么样子
- 如何从源代码(".cpp")中获取公式
- 如何将结果传递给源代码(".cpp")
对你们这些老前辈来说,这不是一个话题。在哪里可以找到关于C++的好教程?
问候,Dino
最好的教程可以在书中找到。SO上有很多关于好书推荐的话题。
在C++中,独立函数应该分组在名称空间中,或者作为static
类成员(但前提是它们在逻辑上连接到一个类)。
对于你的情况,我会选择namespace
。即便如此,仍有3种可能性,其中2种是可优先考虑的:
1) 在标头中声明函数,并将其定义在源文件中:
//formulas.h
#ifndef FORMULAS_H
#define FORMULAS_H
namespace Formulas
{
int myFormula(int,int);
};
#endif
预处理器指令是include guards(你可以用谷歌搜索)。之后,您可以在源文件中定义它:
//formulas.cpp
#include "formulas.h"
namespace Formulas
{
int myFormula(int, int)
{
//....
return 42;
}
}
2) 将头中的函数声明并定义为inline
(这将防止函数的多个定义)。通常使用频繁调用的相对较小的函数来完成,以防止调用开销并允许更好的优化:
//formulas.h
#ifndef FORMULAS_H
#define FORMULAS_H
namespace Formulas
{
inline int myFormula(int,int)
{
//...
return 42;
}
};
#endif
3) 在标头中声明和定义函数,将其标记为static
。这是不可取的,因为它将为包括标题的每个翻译单元创建函数的副本。
要使用该函数,您只需要在声明和调用它的位置包含标头。
头文件(*.h)
int add(int a, int b);
源文件(*.cpp)在cpp文件的顶部
#include "yourheader.h"
然后在cpp文件中的任何位置
...
int result=add(5,6);
...
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 将公共但非静态的成员函数与ALGLIB集成
- 从R调用C++函数并对其进行集成时出错
- 与 boost odeint 集成期间的析构函数调用
- 使用 Pybind11 将函数集成到 Python C++错误,同时使用 PYBIND11_MODULE
- 使用boost :: Math的Gauss-Kronrod正交正交进行复杂函数的集成
- 仅在C 中的一个变量上,两个变量函数的数值集成(使用数值配方库)
- 将函数作为参数传递以使用 lambda 集成对象
- 如何在C++中集成函数
- 对我的C++ OpenFrameworks项目中wpa_ctrl函数的未定义引用.需要帮助集成此 c 库
- 是否有可能将 VBA 脚本与C++集成以调用函数调用
- 我需要做些什么才能使odeint集成函数在另一个类中编译
- C++11乱绑定集成,函数失败
- Rcpp集成时,c++函数相互调用
- Lua-C++集成:从C++调用表中的函数
- 我已经将CLIPS与VC++(MFC)集成在一起,为什么有些函数无法执行,例如"strcmp"