Pessoal, tenho que passar uma classe por referencia para outra classe. Mas acontecem alguns erros pois a classe fracao possui um construtor com atributos. O que fazer?
fracao.h
#ifndef FRACAO_H
#define FRACAO_H
class Fracao{
private:
int numerador;
int denominador;
public:
Fracao(int numerador, int denominador);
int getDenominador();
int getNumerador();
};
#endif
fracao.cpp
#include <iostream>
#include "fracao.h"
Fracao::Fracao(int numerador, int denominador){
Fracao::numerador = numerador;
Fracao::denominador = denominador;
}
Fracao::getDenominador(){
return Fracao::denominador;
}
Fracao::getNumerador(){
return Fracao::numerador;
}
adicao.h
#ifndef ADICAO_H
#define ADICAO_H
#include <string>
#include "fracao.h"
using namespace std;
class Adicao{
private:
Fracao fracao1;
Fracao fracao2;
int denominadorFinal;
public:
Adicao(Fracao fracao1, Fracao fracao2);
string resultado(int numerador1, int denominador1, int numerador2, int denominador2);
};
#endif
adicao.cpp
#include <iostream>
#include <sstream>
#include "adicao.h"
#include "fracao.h"
#include "mmc.h"
Adicao::Adicao(Fracao fracao1, Fracao fracao2){ // O erro acontece aqui
Fracao Adicao::fracao1 = &fracao1;
Fracao Adicao::fracao2 = &fracao2;
int Adicao::denominadorFinal = MMC.calcularDenominadorFinal(Adicao::fracao1.getDenominador(), Adicao::fracao2.getDenominador());
}
string Adicao::resultado(int numerador1, int denominador1, int numerador2, int denominador2){
string resultado;
int resultado1, resultado2;
if(denominador1 == denominador2){
int soma = numerador1+numerador2;
stringstream ssoma;
ssoma << soma;
stringstream sdenominador;
sdenominador << Adicao::denominadorFinal;
resultado = ssoma.str()+"/"+sdenominador.str();
}else{
resultado1 = (Adicao::denominadorFinal/denominador1)*numerador1;
resultado2 = (Adicao::denominadorFinal/denominador2)*numerador2;
int soma = resultado1+resultado2;
stringstream ssoma;
ssoma << soma;
stringstream sdenominador;
sdenominador << Adicao::denominadorFinal;
resultado = ssoma.str()+"/"+sdenominador.str();
}
return resultado;
}