@thiagomartendal escreveu:
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; }
Mensagens: 6
Participantes: 2