J
Jim
Hello,
I have a very simple object, freqoffset which I'm trying to use as
members of a static array of in another class
class freqoffset
{
public:
freqoffset()ffset(0),strength(0){};
int set(double offset,double strength);
double getOff() const{return offset;};
double getStr() const{return strength;};
private:
double offset,strength;
};
class nh3fitting
{
private:
static const int sn1=18;
static const int sn2=21;
static freqoffset s1[sn1];
static freqoffset s2[sn2];
public:
nh3fitting(double cr, double cd, int n, double sd); //generates an
array and populates it with x values
static int loadArrays();
};
int nh3fitting::loadArrays()
{
s1[0].set( -1.56893, 0.0741);
s1[1].set(-1.526658 , 0.1481);
s1[2].set(-0.623335 , 0.0926);
s1[3].set( -0.590375, 0.1667);
s1[4].set(-0.581021, 0.0185);
s1[5].set(-0.036389 , 0.0370);
s1[6].set(-0.025453 , 0.0185);
s1[7].set(-0.024583, 0.0333);
s1[8].set(-0.015196, 0.3);
s1[9].set(0.005941, 0.0185);
s1[10].set(0.010463, 0.4667);
s1[11].set(0.016835, 0.0926);
s1[12].set(0.019832, 0.0333);
s1[13].set(0.571708, 0.0926);
s1[14].set(0.582719, 0.0185);
s1[15].set(0.617689 , 0.1667);
s1[16].set(1.53405, 0.0741);
s1[17].set(1.545159, 0.1481);
s2[0].set(-2.099033 ,0.0042 );
s2[1].set(-2.058267 , 0.0377);
s2[2].set( -2.053459, 0.0209);
s2[3].set(-1.297087, 0.0372);
s2[4].set(-1.296079,0.026 );
s2[5].set(-1.255384, 0.0019);
s2[6].set(-0.044498, 0.0209);
s2[7].set(-0.041806, 0.0106);
s2[8].set(-0.041456, 0.0116);
s2[9].set(-0.001031, 0.1465);
s2[10].set(0.000309, 0.4997);
s2[11].set(0.001054, 0.2674);
s2[12].set(0.039736, 0.0106);
s2[13].set(0.042055, 0.0116);
s2[14].set(0.046621 , 0.0209);
s2[15].set(1.254559, 0.0019);
s2[16].set(1.295363, 0.026);
s2[17].set(1.296295, 0.0377);
s2[18].set(2.053476, 0.0209);
s2[19].set(2.058256, 0.0377);
s2[20].set(2.099022, 0.0042);
return 0;
}
Unfortunately I get a linker error when trying to do this,
g++ -I/usr/include/gsl/ -L/usr/lib/ -c nh3fit.cpp
g++ -I/usr/include/gsl/ -L/usr/lib/ -lgsl -lgslcblas nh3fit.o -o
nh3fit
nh3fit.o: In function `nh3fitting::loadArrays()':
nh3fit.cpp.text+0xb7): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0xd9): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0xfb): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0x11d): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0x13f): undefined reference to `nh3fitting::s1'
and so on for both s1 and s2. Does anyone have any suggestions?
Thanks in advance,
James
I have a very simple object, freqoffset which I'm trying to use as
members of a static array of in another class
class freqoffset
{
public:
freqoffset()ffset(0),strength(0){};
int set(double offset,double strength);
double getOff() const{return offset;};
double getStr() const{return strength;};
private:
double offset,strength;
};
class nh3fitting
{
private:
static const int sn1=18;
static const int sn2=21;
static freqoffset s1[sn1];
static freqoffset s2[sn2];
public:
nh3fitting(double cr, double cd, int n, double sd); //generates an
array and populates it with x values
static int loadArrays();
};
int nh3fitting::loadArrays()
{
s1[0].set( -1.56893, 0.0741);
s1[1].set(-1.526658 , 0.1481);
s1[2].set(-0.623335 , 0.0926);
s1[3].set( -0.590375, 0.1667);
s1[4].set(-0.581021, 0.0185);
s1[5].set(-0.036389 , 0.0370);
s1[6].set(-0.025453 , 0.0185);
s1[7].set(-0.024583, 0.0333);
s1[8].set(-0.015196, 0.3);
s1[9].set(0.005941, 0.0185);
s1[10].set(0.010463, 0.4667);
s1[11].set(0.016835, 0.0926);
s1[12].set(0.019832, 0.0333);
s1[13].set(0.571708, 0.0926);
s1[14].set(0.582719, 0.0185);
s1[15].set(0.617689 , 0.1667);
s1[16].set(1.53405, 0.0741);
s1[17].set(1.545159, 0.1481);
s2[0].set(-2.099033 ,0.0042 );
s2[1].set(-2.058267 , 0.0377);
s2[2].set( -2.053459, 0.0209);
s2[3].set(-1.297087, 0.0372);
s2[4].set(-1.296079,0.026 );
s2[5].set(-1.255384, 0.0019);
s2[6].set(-0.044498, 0.0209);
s2[7].set(-0.041806, 0.0106);
s2[8].set(-0.041456, 0.0116);
s2[9].set(-0.001031, 0.1465);
s2[10].set(0.000309, 0.4997);
s2[11].set(0.001054, 0.2674);
s2[12].set(0.039736, 0.0106);
s2[13].set(0.042055, 0.0116);
s2[14].set(0.046621 , 0.0209);
s2[15].set(1.254559, 0.0019);
s2[16].set(1.295363, 0.026);
s2[17].set(1.296295, 0.0377);
s2[18].set(2.053476, 0.0209);
s2[19].set(2.058256, 0.0377);
s2[20].set(2.099022, 0.0042);
return 0;
}
Unfortunately I get a linker error when trying to do this,
g++ -I/usr/include/gsl/ -L/usr/lib/ -c nh3fit.cpp
g++ -I/usr/include/gsl/ -L/usr/lib/ -lgsl -lgslcblas nh3fit.o -o
nh3fit
nh3fit.o: In function `nh3fitting::loadArrays()':
nh3fit.cpp.text+0xb7): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0xd9): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0xfb): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0x11d): undefined reference to `nh3fitting::s1'
nh3fit.cpp.text+0x13f): undefined reference to `nh3fitting::s1'
and so on for both s1 and s2. Does anyone have any suggestions?
Thanks in advance,
James