Problema codice classi in C++

di il
2 risposte

Problema codice classi in C++

Ciao a tutti, scrivo questo post poiché non riesco a capire dove ho sbagliato nello scrivere un codice di un programma, deve contenere una classe e una classe derivata, per poi creare un main, ecco il codice:

#include<iostream>
#include<string>
using namespace std;

class Veicolo{
	protected:
		char* tipoveicolo;
		int numeroruote;
		char* colore;
		float velmax;
	public:
		void settipoveicolo(char* tipoveicolo){
			cout<<"Inserisci il tipo del tuo veicolo : ";
			cin>>tipoveicolo;
		}	
		void setnumeroruote(int numeroruote){
			cout<<"Inserisci il numero di ruote del tuo veicolo : ";
			cin>>numeroruote;
		}			
		void setcolore(char* colore){
			cout<<"\nInserisci il colore del tuo veicolo : ";
			cin>>colore;
		}
		void setvelmax(float velmax){
			cout<<"\nInserisci la velocita' massima del tuo veicolo : ";
			cin>>velmax;
		}
		void stampa(){
			cout<<"Tipo veicolo : "<<tipoveicolo<<"\nNumero ruote : "<<numeroruote<<"\nMarca : "<<"\nColore : "<<colore<<"\nVelocita massima : "<<velmax;	
		}
};
class Sportiva : public Veicolo{
	private:
		char* modello;
		char* marca;
		int cavalli;
	public:
		void setmodello(char* modello){
			cout<<"Inserisci il modello della tua auto Sportiva : ";
			cin>> modello ;
		}
		void setmarca(char* j){
			cout<<"Inserisci la marca della tua auto Sportiva : ";
			cin>>marca;
		}
		void setcavalli(int h){
			cout<<"inserisci il numero di cavalli della tua auto Sportiva : ";
			cin>> cavalli;
		}
		void stampa(){
			cout<<"Tipo veicolo : "<<tipoveicolo<<"\nNumero ruote : "<<numeroruote<<"\nMarca : "<<marca<<"\nModello : "<<modello<<"\nCavalli : "<<cavalli<<"\nColore : "<<colore<<"\nVelocita massima : "<<velmax;	
		}
};

int main(){
	Veicolo v1;
	Sportiva s1;
	v1.settipoveicolo();
	v1.setnumeroruote();
	v1.setcolore();
	v1.setvelmax();
}

Riuscireste per piacere a dirmi dove sono gli errori e magari correggere il codice, grazie

2 Risposte

  • Re: Problema codice classi in C++

    Risposta breve: quasi tutto.
    Risposta lunga. Non allochi spazio per i vari char* che non se lo allocano da solo. Sei in C++, usa std::string. I vari std::cout, std::cin sono nel posto sbagliato. I prototipi delle funzioni accettano parametri che nel main non fornisci.
  • Re: Problema codice classi in C++

    Mi aggiungo a shodan: un setter non deve chiedere da stdin i valori ma solo accettarli come parametro e impostarli nelle variabili d’istanza. Un setter deve avere anche un nome camelCase o le due parole separate da “_”
Devi accedere o registrarti per scrivere nel forum
2 risposte