Problema em chamar construtor de classe base na herança
Pessoal, estou pagando estruturas de dados na faculdade em C++ e essa linguagem é muito louca >.<
Estou tentando chamar o construtor da classe mãe no construtor das classes herdeiras, mas aparece o seguinte erro:
Aí vai o código:
veiculo.h
principal.cpp:
Estou tentando chamar o construtor da classe mãe no construtor das classes herdeiras, mas aparece o seguinte erro:
error: no matching function for call to ‘Veiculo::Veiculo(std::__cxx11::string&)’
Aí vai o código:
veiculo.h
#ifndef VEICULO_H_ #define VEICULO_H_ #include <iostream> using namespace std; class Veiculo { protected: string nome; public: Veiculo(const char *nome) { this->nome = string(nome); cout << "Criação de Veículo" << nome << endl; } ~Veiculo(){ cout << "Destruição de Veículo" << nome << endl; } }; class Terrestre : public Veiculo { public: Terrestre() : Veiculo(nome){ this->nome = Veiculo::nome; cout << "Criação de Terrestre" << nome << endl; }; ~Terrestre() : Veiculo() { cout << "Destruição de Terrestre" << nome << endl; } }; class Aquatico : public Veiculo { public: Aquatico() : Veiculo(nome) { this->nome = Veiculo::nome; cout << "Criação de Aquatico" << nome << endl; }; ~Aquatico() { cout << "Destruição de Aquatico" << nome << endl; } }; class Aereo : public Veiculo { public: Aereo() : Veiculo(nome) { this->nome = Veiculo::nome; cout << "Criação de Aereo" << nome << endl; }; ~Aereo() { cout << "Destruição de Aereo" << nome << endl; } }; #endif /* VEICULO_H_ */
principal.cpp:
#include <iostream> #include "veiculo.h" using namespace std; int main() { cout << "Segunda pratica de AED em C++" << endl; Veiculo v1("v1"); Terrestre t1("t1"); Aquatico aq1("aq1"); Aereo ar1("ar1"); }
Igor Alvim
Curtidas 0