我已经创建了一些数学函数,这些函数将用于main()和多个主机类中的成员函数。我认为将这些数学函数作为全局范围是最容易的,但我不知道如何做到这一点。无法声明和识别全局函数
我目前把所有的函数放在一个名为Rdraws.cpp的文件中,其中的原型是Rdraws.h。即使使用了所有的#includes
和externs
,我在main()的第一个函数调用中也收到了“symbol not found”编译器错误。
这是我有:
// Rdraws.cpp
#include <cstdlib>
using namespace std;
#include <cmath>
#include "Rdraws.h"
#include "rng.h"
extern RNG rgen // this is the PRNG used in the simulation; global scope
void rmultinom(double p_trans[], int numTrials, int numTrans, int numEachTrans[])
{ // function 1 def
}
void rmultinom(const double p_trans[], const int numTrials, int numTrans, int numEachTrans[])
{ // function 2 def
}
int rbinom(int nTrials, double pLeaving)
{ // function 3 def
}
// Rdraws.h
#ifndef RDRAWS
#define RDRAWS
void rmultinom(double[], int, int, int[]);
void rmultinom(const double[], const int, int, int[]);
int rbinom(int, double);
#endif
// main.cpp
...
#include "Rdraws.h"
...
extern void rmultinom(double p_trans[], int numTrials, int numTrans, int numEachTrans[]);
extern void rmultinom(const double p_trans[], const int numTrials, int numTrans, int numEachTrans[]);
extern int rbinom(int n, double p);
RNG rgen; // global PRNG object created for simulation
int main() { ... }
我很新的节目。如果有一个非常聪明的方法来做到这一点,我很想知道。
更新
我是一个白痴并没有意识到我还没有在我的编译器包括Rdraws.cpp。作为一张海报,我也忘了一个分号。
如果在这里概述的方法可以改进,我仍然会很感激建议。
梅。对于“编程相当新颖”的人来说,这看起来相当不错。 – 2010-04-14 16:08:23