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