Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    3

    (C++) Problema semplice con dei puntatori

    Ciao a tutti...so ke i commenti sulla mia domanda saranno del tipo
    "ke capra!!" o "...." , ma ho da risolvere un programma in c++ e all'uni non ho un grandissimo prof.. quindi non è solo colpa mia =)
    Devo fare un programma per la gestione utenze...
    ho fatto un header con i prototipi e un source con la definizione...
    mi danno tantissimi errori di sintassi e non riesco a capire il perkè...
    ****************************HEADER**************** *******************
    #ifndef TELEFONO_H
    #define TELEFONO_H
    #include <iostream>
    using namespace std;
    class utenza{
    private:
    int numero,contatore,codice;
    string intestatario;
    const int costo =1200;
    public:
    utenza();
    utenza(int,int,int,string);
    };
    class gestione {
    private:
    utenza *indice;
    const int max= 100;
    public:
    gestione(int,int,int,string);
    aggiornamento(int);
    string verifica_numero(int,int);
    };
    #endif
    ******************************SOURCE************** ********************
    #include "Telefono.h"
    utenza::utenza(){
    numero =0;
    contatore = 0;
    codice = 000;
    intestatario= "0";
    }
    utenza::utenza(int num,int cod,int cont,string nome){
    numero = num;
    codice =cod;
    contatore = cont;
    intestatario = nome;
    }
    gestione::gestione(int num,int cod,int cont,string nome){
    indice = new utenza()[max];
    }
    gestione::aggiornamento(string nome,int num){
    for (int i;i<100;i++){
    if (indice[i].intestatario == nome){
    indice[i].numero = numero+num;
    }
    }
    }
    string gestione::verifica_numero(int num,int cod){
    indice[i].numero = num;
    indice[i].codice = cod;
    }
    CIAO A TUTTI
    :gren:

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    3
    un minimo aiuto?

  3. #3
    1) 'const int costo = 1200' e 'const int max = 100' sono sbagliati perché i membri const di un oggetto vanno inizializzati nella lista di inizializzazione del costruttore (anzi, di tutti i costruttori);

    codice:
    // costruttori
    utenza::utenza() : costo( 1200 )
    {
        ...
    }
    
    gestione::gestione() : max( 100 )
    {
        ...
    }
    2) non è un errore sintattico ma ti consiglio di correggerlo (non ai fini della compilazione): in 'gestione' dovresti includere anche un distruttore che deallochi 'indice', altrimenti c'è spreco di memoria (memory leak);

    3) in 'gestione::aggiornamento' sarebbe opportuno aggiungere il tipo restituito (di default è 'int'), ma penso sia addirittura necessario (in C++, non in C mi pare) che il metodo restituisca un valore di ritorno, cosa che invece in questo caso non vedo fare;

    4) in 'verifica_numero' accedi a membri della classe 'utenza' dichiarati come privati; puoi risolvere l'errore o scrivendo dei metodi accessori oppure dichiarando in 'utenza' la classe 'gestione' come 'friend'.

    Queste sono le cose che secondo me saltano un po' più all'occhio. Cmq se hai altri problemi fammi sapere!

    Ciao.

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.