Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    155

    [C++] Primo approccio con le classi

    Questo è il primo codice che ho scritto utilizzando le classi:

    codice:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    class persona
    {
    private:
    	char nome[20], cognome[20], titolo[10];
    
    public:
    	setNome(char x[20]);
    	setCognome(char x[20]);
    	setTitolo(char x[10]);
    	getNome();
    	getCognome();
    	getTitolo();
    }
    
    void persona::setNome(char x[20])
    {
    	nome = x;
    }
    
    void persona::setCognome(char x[20])
    {
    	cognome = x;
    }
    
    char persona::getCognome()
    {
    	return cognome;
    }
    
    char persona::getNome()
    {
    	return nome;
    }
    
    void persona::setTitolo(char x[10])
    {
    	titolo = x;
    }
    
    char persona::getTitolo()
    {
    	return titolo;
    }
    
    int main()
    {
            persona a;
    	char nome[20], cognome[20], titolo[10];
    
    	printf("\nInserisci il titolo: ");
    	cin >> titolo;
    	a.setTitolo(titolo);
    
    	printf("\nInserisci il nome: ");
    	cin >> nome;
    	a.setNome(nome);
    
    	printf("\nInserisci il cognome: ");
    	cin >> cognome;
    	a.setCognome(cognome);
    
    	printf("\n\n%s %s %s", a.getTitolo(), a.getNome(), a.getCognome());
    
    	while (!_kbhit())
    		;
    }
    Pruroppo in fase di compilazione ottengo un errore che mi dice, in corrispondenza delle funzioni char,
    codice:
    impossibile convertire da 'char []' a 'char [20]'
            Non vi sono conversioni in tipi di matrici,
     sebbene vi siano conversioni in riferimenti o in puntatori a matrici
    Che significa? Non mi sembra ci siano conversioni da fare, visto che le variabili sono tutte dello stesso tipo...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    97
    Ciao,
    ho visto che cerchi di assegnare il valore du un arrray ad un altro utilizzando l' operatore '='
    Per fare cio' che penso tu desideri, devi usare la funzione strcpy( Array A, Array B);
    Altrimenti sembra tu voglia assegnare ad un array l' indirizzo di un altro, cosa comunque impossibile da fare.
    Verifica anche le funzioni getNome(), getCognome(), getTitolo(), se vuoi che queste funzioni restituiscano un array, devi far si che restituiscano un indirizzo del primo elemento contenuto nell' array quindi cambiare la loro definizione e dicharazione.

    mi sonopermesso di correggerti il programma,
    codice:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    class persona
    {
    private:
    	char nome[20], cognome[20], titolo[10];
    
    public:
    	void setNome(char * x);
    	void setCognome(char * x);
    	void setTitolo(char * x);
    	char * getNome();
    	char * getCognome();
    	char * getTitolo();
    };
    
    void persona::setNome(char x[20])
    {
    	strcpy(nome, x);
    };
    
    void persona::setCognome(char x[20])
    {
    	strcpy(cognome, x);
    };
    
    char * persona::getCognome()
    {
    	return cognome;
    }
    
    char * persona::getNome()
    {
    	return nome;
    }
    
    void persona::setTitolo(char x[10])
    {
    	strcpy(titolo , x);
    }
    
    char * persona::getTitolo()
    {
    	return titolo;
    }
    
    void main()
    {
        persona a;
    	char nome[20], cognome[20], titolo[10];
    
    	printf("\nInserisci il titolo: ");
    	cin >> titolo;
    	a.setTitolo(titolo);
    
    	printf("\nInserisci il nome: ");
    	cin >> nome;
    	a.setNome(nome);
    
    	printf("\nInserisci il cognome: ");
    	cin >> cognome;
    	a.setCognome(cognome);
    
    	printf("\n\n%s %s %s", a.getTitolo(), a.getNome(), a.getCognome());
    
    	while (!_kbhit())
    		;
    }
    Ciao
    Sergio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.