Giorno a tutti...Passo subuti ha descrivermi il mio problema come da titolo devo compilare un un programma scritto in c++ con dev-cpp che gira su windows 7 professional ...ma quando vado a compilare il compilatore mi restituisce dei messaggi con degli errori che nn riesco a risolvere ...tengo a specificare che la compilazione su windows xp e linux ubuntu avviene in maniera eccellente... :master:
codice sorgente
file .h
#ifndef FRACTION_H
#define FRACTION_H
class fraction {
private :
int n,d;
void reduce();
public :
int get_numerator();
int get_denominator();
int set_numerator(int w);
int set_denominator(int w);
bool is_pos();
fraction (int a, int b);
fraction sum(const fraction&c);
fraction sub(const fraction&c);
fraction mul(const fraction&c);
fraction div(const fraction&c);
};
#endif
file .cpp
#include "fraction.h"
#include <iostream>
#include <cstdlib>
using namespace std;
void fraction :: reduce( )
{
int k;
int num=n;
int den=d;
if (num < 0)
num = num*(-1);
if (den < 0)
den = den * (-1);
while(num>0)
{
if (den>num)
{
k=den;
den=num;
num=k;
}
num=num-den;
}
n=n/den;
d=d/den;
if ((n<0 && d<0)||(n>0 && d<0))
{
n=n*(-1);
d=d*(-1);
}
};
fraction :: fraction (int a=1,int b=1)
{
n=a;
d=b;
reduce();
};
bool fraction :: is_pos()
{
bool pos;
if (n>0)
pos = true;
else
pos = false;
return pos;
};
int fraction :: get_numerator()
{
return n;
};
int fraction :: get_denominator()
{
return d;
};
fraction fraction :: sum(const fraction&c)
{
fraction ris;
ris.d=d*c.d;
ris.n=(ris.d/d*n)+(ris.d/c.d*c.n);
ris.reduce();
return ris;
};
fraction fraction :: sub(const fraction&c)
{
fraction ris;
ris.d=d*c.d;
ris.n=(ris.d/d*n)-(ris.d/c.d*c.n);
ris.reduce();
return ris;
};
fraction fraction :: mul(const fraction&c)
{
fraction ris;
ris.n=this->n*c.n;
ris.d=this->d*c.d;
ris.reduce();
return ris;
};
fraction fraction :: div(const fraction&c)
{
fraction ris;
ris.n=this->n*c.d;
ris.d=this->d*c.n;
ris.reduce();
return ris;
};
int fraction :: set_numerator(int w)
{
n = w;
reduce();
};
int fraction :: set_denominator(int w)
{
d = w;
reduce();
};
funzione principale (main) .cpp
#include <iostream>
#include <cstdlib>
#include "fraction.h"
using namespace std;
int main()
{
fraction o(-5,8);
fraction g(-3,2);
cout<<o.is_pos()<<endl;
fraction x = o.sum(g);
cout<<x.get_numerator()<<"/"<<x.get_denominator()<<endl;
fraction y = o.sub(g);
cout<<y.get_numerator()<<"/"<<y.get_denominator()<<endl;
fraction z = o.mul(g);
cout<<z.get_numerator()<<"/"<<z.get_denominator()<<endl;
fraction k = o.div(g);
cout<<k.get_numerator()<<"/"<<k.get_denominator()<<endl;
k.set_numerator(2);
cout<<k.get_numerator()<<"/"<<k.get_denominator()<<endl;
k.set_denominator(2);
cout<<k.get_numerator()<<"/"<<k.get_denominator()<<endl;
system("PAUSE");
return 0;
}
messaggio di errore restituito ...
Compilatore: Default compiler
Esecuzione di g++.exe...
g++.exe "C:\Users\Maurizio\Desktop\tda\tda.cpp" -o "C:\Users\Maurizio\Desktop\tda\tda.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x142):tda.cpp: undefined reference to `fraction::fraction(int, int)'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x15d):tda.cpp: undefined reference to `fraction::fraction(int, int)'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x168):tda.cpp: undefined reference to `fraction::is_pos()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x19d):tda.cpp: undefined reference to `fraction::sum(fraction const& )'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x1ae):tda.cpp: undefined reference to `fraction::get_denominator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x1bb):tda.cpp: undefined reference to `fraction::get_numerator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x209):tda.cpp: undefined reference to `fraction::sub(fraction const& )'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x21a):tda.cpp: undefined reference to `fraction::get_denominator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x227):tda.cpp: undefined reference to `fraction::get_numerator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x275):tda.cpp: undefined reference to `fraction::mul(fraction const& )'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x286):tda.cpp: undefined reference to `fraction::get_denominator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x293):tda.cpp: undefined reference to `fraction::get_numerator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x2e1):tda.cpp: undefined reference to `fraction::div(fraction const& )'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x2f2):tda.cpp: undefined reference to `fraction::get_denominator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x2ff):tda.cpp: undefined reference to `fraction::get_numerator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x34e):tda.cpp: undefined reference to `fraction::set_numerator(int)'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x359):tda.cpp: undefined reference to `fraction::get_denominator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x366):tda.cpp: undefined reference to `fraction::get_numerator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x3b5):tda.cpp: undefined reference to `fraction::set_denominator(int)'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x3c0):tda.cpp: undefined reference to `fraction::get_denominator()'
C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x3cd):tda.cpp: undefined reference to `fraction::get_numerator()'
collect2: ld returned 1 exit status
Esecuzione terminata
ringrazio anticipatamente chiunque posso darmi una mano a risolvere questo problema ...![]()

Rispondi quotando