Compilé tu código y la mayoría de los errores eran por la letra
Ñ. Luego en la definición de la clase
moto faltaba un punto y coma.
Y en estas líneas el último argumento que se le pasa al constructor de
vehiculo tiene que ser simplemente "
c" y no "
*c".
moto::moto(int veloInicial,int liInicial, int capDepoInicial, int anioInicial, int cilinInicial,const char* c, const char *c1):
vehiculo( veloInicial, liInicial, capDepoInicial, anioInicial, c)
Aca está el código comentado:
#include<iostream>
#include<cstring>
using namespace std;
//Declaracion clase VEHICULO
class vehiculo
{
protected:
char *cad;
int litros;
int kphMas;
int kphMenos;
int veloActual;
int capaDepo;
int año; // Error por la letra Ñ
int capDepo;
int liDepo;
public:
vehiculo(int veloInicial, int liInicial, int capDepoInicial, int anioInicial, const char *c); // Error por la letra Ñ
~vehiculo();
void imprimir();
void llenarDepo();
void acelerar(int kphMas);
void frenar(int kphMenos);
char *leer(char *c);
};
//Declaracion derivada MOTO
class moto : public vehiculo
{
protected:
int cilindrada;
int cilinInicial;
char *tipo;
public:
moto(int veloInicial,int liInicial, int capDepoInicial, int anioInicial, int cilinInicial, const char* c, const char *c1); // Error por la letra Ñ
~moto();
char* leer1(char*c1);
}; // Faltaba el punto y coma
//Constructor VEHICULO
vehiculo::vehiculo(int veloInicial, int liInicial, int capDepoInicial, int anioInicial, const char *c) // Error por la letra Ñ
{
veloActual = veloInicial;
liDepo = liInicial;
capDepo = capDepoInicial;
año = anioInicial; // Error por la letra Ñ
cad = new char[strlen(c)+1];
strcpy(cad, c);
}
//Destructor VEHICULO
vehiculo::~vehiculo()
{
delete [] cad;
}
//Metodo leer VEHICULO
char *vehiculo::leer(char* c)
{
strcpy(c, cad);
return c;
}
// Metodo llenar deposito VEHICULO
void vehiculo::llenarDepo()
{
cout << "Estas llenando el deposito..." << endl;
for(; liDepo < capDepo; liDepo++)
{
}
cout << "El deposito esta lleno: " << liDepo<< " Litros."<< endl << endl;
}
// Metodo imprimir VEHICULO
void vehiculo::imprimir()
{
cout << "La velocidad actual es: "<< veloActual << endl;
cout << "El año del coche es: " << año << endl; // Error por la letra Ñ
cout << "En el deposito hay: " << liDepo << endl;
cout << "El nombre del propietario es: " << *cad <<endl << endl;
}
// Metodo acelerar VEHICULO
void vehiculo::acelerar(int kphMas)
{
if(liDepo > 0)
{
cout << "Estas acelerando!" << endl;
veloActual = veloActual + kphMas;
liDepo = liDepo - kphMas / 10;
cout << "Su velocidad actual es: " << veloActual << endl;
cout << "Su deposito actual es: " << liDepo << endl << endl;
}
else
{
cout << "El deposito esta vacio!" << endl << endl;
}
}
// Metodo frenar VEHICULO
void vehiculo::frenar(int kphMenos)
{
if( veloActual - kphMenos > 0)
{
cout << "Estas frenando!" << endl;
veloActual = veloActual - kphMenos;
cout << "Su velocidad actual es: " << veloActual << endl << endl;
}
else
{
veloActual = 0;
cout << "Ya estas parado!" << endl << endl;
}
}
// Constructor MOTO
moto::moto(int veloInicial,int liInicial, int capDepoInicial, int anioInicial, int cilinInicial,const char* c, const char *c1): // Error por la letra Ñ
vehiculo( veloInicial, liInicial, capDepoInicial, anioInicial, c) // Error por la letra Ñ
{
veloActual = veloInicial;
liDepo = liInicial;
capDepo = capDepoInicial;
año = anioInicial; // Error por la letra Ñ
cad = new char[strlen(c)+1];
strcpy(cad, c);
cilindrada = cilinInicial;
tipo = new char[strlen(c1)+1]; // habia una "m" al comienzo
strcpy(tipo, c1);
}
// Destructor Moto
moto::~moto()
{
delete [] tipo;
}
// Metodo leer MOTO
char *moto::leer1(char* c1)
{
strcpy(c1, tipo);
return c1;
}
int main(){
return 0;
}