0
Good afternoon, I am experiencing several problems when compiling the code below in the code::Blocks with g++ and I would like to get help, thanks in advance.
Content of main.cpp:
#include "Lutador.cpp"
#include <iostream>
#include <string>
int main(){
Lutador *Pretty_Boy=new Lutador("Pretty Boy","França",11,2,1,31,1.75,68.9);
Lutador *Putscript=new Lutador("Putscript","Brasil",14,2,3,29,1.68,57.8);
Lutador *Snapshadow=new Lutador("Snapshadow","EUA",12,2,1,35,1.65,80.9);
Lutador *Deat_Code=new Lutador("Dead Code","Austrália",13,0,2,28,1.93,81.6);
Lutador *Ufocobol=new Lutador("Ufocobol","Brasil",5,4,3,37,1.70,119.3);;
Lutador *Nerdaard=new Lutador("Nerdaard","EUA",12,2,4,30,1.81,105.7);
Luta *UEC01=new Luta;
UEC01->MarcarLuta(*Pretty_Boy, *Putscript);
return 0;
}
Fighter class content. h
#ifndef LUTADOR_H_INCLUDED
#define LUTADOR_H_INCLUDED
#include <string>
class Lutador{
private:
std::string nome;
std::string nacionalidade;
std::string categoria; //peso leve, peso médio, peso pesado
short vitorias;
short derrotas;
short empates;
short idade;
float altura;
float peso;
public:
std::string getNome();
std::string getNacionalidade();
std::string getCategoria();
short getVitorias();
short getDerrotas();
short getEmpates();
short getIdade();
float getAltura();
float getPeso();
public:
void setNome(std::string nome);
void setNacionalidade(std::string nacionalidade);
void setVitorias(short vitorias);
void setDerrotas(short derrotas);
void setEmpates(short empates);
void setIdade(short idade);
void setAltura(float altura);
void setPeso(float peso);
public:
void apresenta();
void status();
void ganharLuta();
void perderLuta();
void empatarLuta();
public:
Lutador(std::string nome, std::string nacionalidade, short vitorias, short derrotas,short empates,short idade, float altura, float peso);
};
#endif // LUTADOR_H_INCLUDED
Content of the Fight class. h
#ifndef LUTA_H_INCLUDED
#define LUTA_H_INCLUDED
#include "Lutador.h"
class Luta{
private:
Lutador Desafiado;
Lutador Desafiante;
short rounds;
bool aprovada;
public:
Lutador getDesafiado();
Lutador getDesafiante();
short getRounds();
bool getAprovada();
public:
void setDesafiado(Lutador DO);
void setDesafiante(Lutador DE);
void setRounds(short num_rounds);
void setAprovada(short YN);
public:
void MarcarLuta(Lutador L1, Lutador L2);
void lutar();
};
#endif // LUTA_H_INCLUDED
Contents of the file Wrestler.cpp
#include "Lutador.h"
#include "Luta.h"
#include <iostream>
#include <string>
std::string Lutador::getNome(){
return nome;
}
std::string Lutador::getNacionalidade(){
return nacionalidade;
}
std::string Lutador::getCategoria(){
return categoria;
}
short Lutador::getVitorias(){
return vitorias;
}
short Lutador::getDerrotas(){
return derrotas;
}
short Lutador::getEmpates(){
return empates;
}
short Lutador::getIdade(){
return idade;
}
float Lutador::getAltura(){
return altura;
}
float Lutador::getPeso(){
return peso;
}
void Lutador::setNome(std::string nome){
this->nome=nome;
}
void Lutador::setNacionalidade(std::string nacionalidade){
this->nacionalidade=nacionalidade;
}
void Lutador::setVitorias(short vitorias){
this->vitorias=vitorias;
}
void Lutador::setDerrotas(short derrotas){
this->derrotas=derrotas;
}
void Lutador::setEmpates(short empates){
this->empates=empates;
}
void Lutador::setIdade(short idade){
this->idade=idade;
}
void Lutador::setAltura(float altura){
this->altura=altura;
}
void Lutador::setPeso(float peso){
this->peso=peso;
}
void Lutador::apresenta(){
std::cout << "Nome.............: " << getNome() << "\n";
std::cout << "Nacionalidade....: " << getNacionalidade() << "\n";
std::cout << "Categoria........: " << getCategoria() << "\n";
std::cout << "Vitorias.........: " << getVitorias() << "\n";
std::cout << "Derrotas.........: " << getDerrotas() << "\n";
std::cout << "Empates..........: " << getEmpates() << "\n";
std::cout << "Idade............: " << getIdade() << "\n";
std::cout << "Altura...........: " << getAltura() << "\n";
std::cout << "Peso.............: " << getPeso() << "\n\n\n";
}
void Lutador::status(){
std::cout << getNome() << "\n";
std::cout << getVitorias() << "\n";
std::cout << getEmpates() << "\n";
std::cout << getDerrotas() << "\n";
}
void Lutador::ganharLuta(){
setVitorias(getVitorias()+1);
}
void Lutador::perderLuta(){
setDerrotas(getVitorias()+1);
}
void Lutador::empatarLuta(){
setEmpates(getEmpates()+1);
}
Lutador::Lutador(std::string no, std::string na, short vi, short de,short em,short id, float al, float pe){
setNome(no);
setNacionalidade(na);
setVitorias(vi);
setDerrotas(de);
setEmpates(em);
setIdade(id);
setAltura(al);
setPeso(pe);
if(peso<=80){
categoria="Peso Leve";
}else if(peso<=110){
categoria="Peso medio";
}else if(peso>110){
categoria="Peso pesado";
}
}
Contents of the file Fight.cpp
#include "Luta.h"
#include <iostream>
Lutador Luta::getDesafiado(){
return Desafiado;
}
Lutador Luta::getDesafiante(){
return Desafiante;
}
short Luta::getRounds(){
return rounds;
}
bool Luta::getAprovada(){
return aprovada;
}
void Luta::setDesafiado(Lutador DO){
Desafiado=DO;
}
void Luta::setDesafiante(Lutador DE){
Desafiante=DE;
}
void Luta::setRounds(short num_rounds){
rounds=num_rounds;
}
void Luta::setAprovada(short YN){
aprovada=YN;
if(aprovada==1){
std::cout << "Luta aprovada\n";
lutar();
}else{
std::cout << "Luta não aprovada\n";
}
}
void Luta::MarcarLuta(Lutador L1, Lutador L2){
if(L1.getCategoria()!=L2.getCategoria() && L1.getNome()!=L2.getNome()){
setAprovada(0);
}else{
setAprovada(1);
setDesafiado(L1);
setDesafiante(L2);
}
}
void Luta::lutar(){
if(getAprovada()==1){
Desafiado.apresenta();
Desafiante.apresenta();
}else{
std::cout << "Impossivel realizar a luta\n\n";
}
short vencedor=rand()%700;
if(vencedor<=200){
Desafiado.empatarLuta();
Desafiante.empatarLuta();
}else if(vencedor<=400){
Desafiado.ganharLuta();
Desafiante.perderLuta();
}else if(vencedor<=600){
Desafiado.perderLuta();
Desafiante.ganharLuta();
}
}
The errors returned in the compilation are these:
/home/Khyser/Documents/POO/Class 07/main.cpp|14|error: use of of Fight::Fight()'|
/home/Khyser/Documents/POO/Class 07/Fighting. h|6|note: Fight::Fight()' is implicitly Deleted because the default Definition would be Ill-Formed:|
/home/Khyser/Documents/POO/Class 07/Fighting. h|6|error: no matching Function for call to Wrestler::Wrestler()'|
/home/Khyser/Documents/POO course/Class 07/Wrestler.cpp|87|note: candidate: Wrestler::Wrestler(Std::__cxx11:string, Std::__cxx11:string, short int, short int, short int, short int, float, float)|
/home/Khyser/Documents/POO Course/Class 07/Wrestler.cpp|87|note:
candidate expects 8 Arguments, 0 provided|/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note: candidate: Wrestler::Wrestler(const Wrestler&)|
/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note:
candidate expects 1 argument, 0 provided|/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note: candidate: Wrestler::Wrestler(Wrestler&&)|
/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note:
candidate expects 1 argument, 0 provided|/home/Khyser/Documents/POO/Class 07/Fighting. h|6|error: no matching Function for call to Wrestler::Wrestler()'|
/home/Khyser/Documents/POO course/Class 07/Wrestler.cpp|87|note: candidate: Wrestler::Wrestler(Std::__cxx11:string, Std::__cxx11:string, short int, short int, short int, short int, float, float)|
/home/Khyser/Documents/POO Course/Class 07/Wrestler.cpp|87|note:
candidate expects 8 Arguments, 0 provided|/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note: candidate: Wrestler::Wrestler(const Wrestler&)|
/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note:
candidate expects 1 argument, 0 provided|/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note: candidate: Wrestler::Wrestler(Wrestler&&)|
/home/Khyser/Documents/POO course/Class 07/Fighter. h|6|note:
candidate expects 1 argument, 0 provided|
Although the modifications still keep returning the same errors...
– user83187