I'm getting data structures in college in C ++ and this language is pretty crazy.
I'm trying to call the constructor of the parent class in the heiress class constructor, but the following error appears:
error: no matching function for call to Vehicle :: Vehicle (std :: __ cxx11 :: string &) '
Here's 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");
}