0
I’m taking data structures in college at C++ and this language is really crazy.
I am trying to call the parent constructor in the constructor of the heirs classes, but the following error appears:
error: no matching Function for call to Vehicle::Vehicle(Std::__cxx11::string&)'
Here comes the code:
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");
}