[Boot] c++ oggetti e classi

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Lena
Prode Principiante
Messaggi: 3
Iscrizione: venerdì 5 settembre 2008, 16:16

[Boot] c++ oggetti e classi

Messaggio da Lena »

ciao a tutti.
immagino di essere proprio messa male per fare domande simili, solo che ho passato mezza carriera universitaria a studiare linguaggi non ad oggetti e ora che mi devo occupare di c++... non riesco a capire nulla. il manuale dice che l'oggetto è un'istanza della classe, ma sinceramente la definizione non mi dice nulla (pur sapendo cos'è una classe). speravo di trovare degli esempi illuminanti, ma ovviamente non ci sono stati. mi potete dire qualcosa voi? non so, fare (semplici) esempi, magari. in pratica: l'oggetto è qualcosa (cosa?) che inserisco quando sto costruendo una classe o lo definisco usando la classe???  ::)
Avatar utente
dekster
Prode Principiante
Messaggi: 50
Iscrizione: mercoledì 26 settembre 2007, 22:41

Re: [Boot] c++ oggetti e classi

Messaggio da dekster »

Un'oggetto lo puoi vedere come un'entità a se stante con delle proprie proprietà... non per niente si chiama programmazione ad oggetti, crei oggetti e li tratti come tali. L'importante è l'astrazione!
Esempio semplice:

Codice: Seleziona tutto

//FILE .h
class Cane{
  //proprietà del cane
  private:
    string nome;
    int anni;
  public:
  Cane(string nome, int anni); //costruttore
  ~Cane(); //distruttore
  string getNome();
  int getEta();
};

//FILE .cpp
Cane::(string nome, int anni){
  this->nome = nome;
  this->anni = anni;
}

string Cane::getNome(){
  return nome;
}

int Cane::getEta(){
  return anni;
}


//FILE con il main

int main(){
  Cane* pippo = new Cane("Pippo", 2); //ho creato un oggetto cane che si chiama pippo e ha 2 anni
  cout << "Il cane si chiama: " << pippo->getNome();
}
....spero di non aver fatto errori  l'ho scritto al volo ;D
Ultima modifica di dekster il venerdì 5 settembre 2008, 17:32, modificato 1 volta in totale.
Lena
Prode Principiante
Messaggi: 3
Iscrizione: venerdì 5 settembre 2008, 16:16

Re: [Boot] c++ oggetti e classi

Messaggio da Lena »

grazie mille!!!
solo una cosa: ma dal tuo esempio, non dovrebbe essere pippo l'oggetto? cioè pippo è l'oggetto di tipo cane?
Avatar utente
scolpi
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4504
Iscrizione: giovedì 8 maggio 2008, 19:54
Località: Folgaria (Trento)
Contatti:

Re: [Boot] c++ oggetti e classi

Messaggio da scolpi »

sebbene sia qualche anno che non ci perdo più tempo, qualcosa però ricordo  :-* la classe è qualcosa di astratto, definisce  come sarà l'oggetto e come sarà manipolabile (tramite i metodi) l'oggetto è il concreto, assume i connotati definitegli dalla classe di appartenenza.


es

class Persona {
    int età;
    int sesso;
    ......
                  }

void inserisciEta(int eta){
          this->età = eta;
                                }


qui vedi il concetto di classe: a tutti gli oggetti che rappresenteranno una Persona, sarà associatà l'età, l'altezza ecc., inoltre sarà anche popssibile associare l'èta ad una persona.

Ciao
Simone

ps se la sintassi non è proprio corretta mi scuso, ma è qualche anno che non smanetto con le classi
Acquista il nuovo cd postumo, solo 10 euro e tutti in beneficienza, per info:  www.valentinagiovagnini.it
Avatar utente
simo_magic
Rampante Reduce
Rampante Reduce
Messaggi: 9496
Iscrizione: lunedì 18 dicembre 2006, 21:37
Località: Piemonte

Re: [Boot] c++ oggetti e classi

Messaggio da simo_magic »

classe sta ad umanità come l'oggetto sta a marco rossi

la classe persona di scolpi è una classe infatti mentre se dichiari
Persona p; crei un oggetto di tipo persona
Avatar utente
dekster
Prode Principiante
Messaggi: 50
Iscrizione: mercoledì 26 settembre 2007, 22:41

Re: [Boot] c++ oggetti e classi

Messaggio da dekster »

Lena ha scritto: grazie mille!!!
solo una cosa: ma dal tuo esempio, non dovrebbe essere pippo l'oggetto? cioè pippo è l'oggetto di tipo cane?
sì, pippo è l'oggetto. Puoi crearne quanti ne vuoi:

Codice: Seleziona tutto

Cane* pippo = new Cane("Pippo", 2); //ho creato l'oggetto pippo di tipo Cane che ha come proprietà il nome="Pippo" e gli anni=2
Cane* pluto = new Cane("Fuffi", 4); //ho creato l'oggetto pluto di tipo Cane che ha come proprietà il nome="Fuffi" e gli anni=4
......
Come hanno già detto @scolpi e @simo_magic, l'oggetto assume la struttura e le proprietà definite nella classe.
Lena
Prode Principiante
Messaggi: 3
Iscrizione: venerdì 5 settembre 2008, 16:16

Re: [Boot] c++ oggetti e classi

Messaggio da Lena »

molto gentili e esaurienti. grazie a tutti, ora ho capito.  (good)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti