Newsgroup: it.comp.lang.c++
Titolo: Ereditarietà e polimorfismo

Chi di voi è così gentile da darmi alcune dritte?
Il programma che devo realizzare deve essere formato da tre classi 
(derivate) e sfruttare tutte le norme dell'ereditarietà, polimorfismo ecc 
ecc. Le classi sono Marca, Modello, Peso. I tre dati (marca modello e peso 
del pc) devono essere acquisiti solo tramite un'unica funzione (ad es 
setinfo() ).
Il programma non deve fare altro che acquisire i dati (marca modello e peso 
del pc) in un oggetto, e poi stamparli a video. Tuttavia in ingresso 
(l'ingresso lo devo fare sempre tramite main) non devono essere 
necessariamente presenti tutti e tre dati (marca modello e peso del pc); ad 
es se inserisco (sempre tramite la funzione setinfo() ) solo la marca ed il 
modello, o anche solo la marca, il programma deve essere ingrado di stampare 
bene i dati ricevuti. Faccio degli esempi:
INPUT tramite main
setinfo('IBM', 1000, 2500);
OUTPUT SU SCHERMO:
marca: IBM
prezzo: 1000
peso: 2500
INPUT tramite main
setinfo('SONY','1500');
OUTPUT SU SCHERMO:
marca: SONY
prezzo: 1500
INPUT tramite main
setinfo('ASUS','3000');
OUTPUT SU SCHERMO:
marca: ASUS
prezzo: 3000
Come posso implementare tutto ciò?
grazie 1000 a tutti coloro che mi daranno una dritta!!!

 Come posso implementare tutto ciò?
la prima cosa che mi viene in mente è una cosa del genere...
void setinfo( char *_marca )
void setinfo( char *_marca, int _prezzo )
void setinfo( char *_marca, int _prezzo, int _peso )
spero di esserti stato utile

 grazie 1000 a tutti coloro che mi daranno una dritta!!!
Magari studiando? L'esercizio che ti hanno dato e' evidentemente la
semplice applicazione di alcuni concetti di base. Non c'e' modo di
darti una dritta senza farti automaticamente i compiti, e tu questo non
lo vuoi, vero?
Ciao,
Nicola

void setinfo( char *_marca, int _prezzo, int _peso )
si, anche io avevo pensato ad una cosa del genere, ma nel momento in cui 
devo stampare a video i dati acquisiti senza far comparire simboli strani 
come posso fare???... vabbè adesso inizio ad abbozzare il codice... poi vi 
faccio sapere... grazie 1000

Nicola
è ovvio che se vengo su questo newsgroup è per studiare... l'idea non ti 
aveva sfiorato???
non ho chiesto assolutamente "pappa pronta", e penso anche che, qualora mi 
avessero mandato delle righe di codice, avrei comunque potuto studiare da 
esse... per poi esercitarmi per conto mio con altri esercizi simili. Va da 
se che poi ognuno la pensa in modo diverso... ma credo anche che a volte 
stare zitti, senza fare inutilissime paternali, consenta un clima più sereno 
e privo di attriti. 

 e privo di attriti.
Per evitare la paternale sarebbe bastato postare un abbozzo di
soluzione insieme alla richiesta, giusto per dimostrare che il primo
sforzo l'avevi fatto.
Ciao,
Nicola

ho provato a fare nel seguente modo:
************************main.cpp*********************
#include <cstdlib>
#include <iostream>
#include "prototipi.h"
using namespace std;
int main()
{
    Prezzo a;
    a.setinfo("IBM", 1000);
    system("PAUSE");
    return EXIT_SUCCESS;
}
************************prototipi.h*********************
   class Marca
   {
         protected:
             char marca[10];
         public:
             void setinfo(char _marca[10]){strcpy(marca, _marca);}
   };
   class Prezzo : protected Marca
   {
         protected:
             int prezzo;
         public:
             void setinfo(char _marca[10], int _prezzo){prezzo=_prezzo; 
strcpy(marca, _marca);}
   };
   class Peso : protected Prezzo
   {
         protected:
             int peso;
         public:
             void setinfo(char _marca[10], int _prezzo, int 
_peso){prezzo=_prezzo; strcpy(marca, _marca); peso=_peso;}
   };
********************************************************
fin qui sembra andare tutto bene, il problema è che vorrei un qualcosa di 
più autoadattativo... mi spiego:
per inserire le tre informazioni (modello, prezzo, peso) devo prima allocare 
la classe Peso (quella che consente l'acquisizione di 3 parametri), mentre 
se devo inserire solo due dati ciò non va più bene perchè è necessaria prima 
l'allocazione della classe Prezzo... lo stesso se voglio inserire solo il 
modello devo per forza prima allocare la classe Modello... tutto ciò lo 
vorrei evitare.
Mi chiedevo se era possibile allcare la classe adatta al numero di parametri 
inseriti automaticamente... lo dovrei fare con i costruttori??? ...help 
please!!!





> potresti fare un'overloading del metodo setinfo()
si si potrebbe .. ma senza quell'apostrofo, ti prego :)

 
http://wiki.news.nic.it/NetEtiquette
OKKK LO FARO'... MA NEL FRATTEMPO TU HAI MAI SENTITO PARLARE DI GALATEO O DI 
NORME DELLA CONVIVENZA CIVILE?...NO E'?
...SE VUOI TE LE SPIEGO IO...
ops.... ho usato caratteri maiuscoli il che va contro...blablablabla
L'HO FATTO APPOSTAAAA AHAHAHAHAHHAHAHA
VAFF* NETIQUETTE 

le cose che scrivi si commentano da sole!
fai una cosa...
quello che hai detto fattelo rientrare da dove ti è uscito... può darsi che 
ti piaccia! ;-p
...certa gentaglia...
ma da dove vieni... da un itis? ahahahahahhahahahahahahahahahaha

Cerchiamo di mantenere comunque un comportamento educato, *tutti*.
Se Lino avrebbe fatto magari meglio a studiare un po' di piu' prima di
rivolgersi al newsgroup, e' gia' stato ripreso una volta e, pur
manifestando il proprio sentimento di offesa, ha risposto alla mia
richiesta postando il suo primo tentativo. Per questo non merita di
essere ulteriormente offeso, ma semmai indirizzato nei suoi sforzi.
Questo newsgroup non e' riservato a guru e/o cervelloni.
Ciao,
Nicola

Questo non mi pare il modo piu' efficace per convincere la gente a
risponderti.
Ciao,
Nicola

 discorso.
Veramente sei stato sgarbato e scurrile ed e' per questo che mi sono
preso la briga di risponderti.
Ciao,
Nicola

 so nemmeno di quello che parlo... ma parlo"
ma fatti i cazzi tuoi... lo dico che troppa tv fa male...
*********con questo per me la discussione si chiude qui****************** 

 io lo correggerei con un "avesse"
No, "avrebbe" è perfetto in quel contesto. Non è la protasi di periodo
ipotetico dell'irrealtà, ma una subordinata con valore concessivo.
Max

 ma fatti i cazzi tuoi... lo dico che troppa tv fa male...
Certo che se scendi sullo stesso livello, poi non aspettarti
solidarieta'.
In ogni caso invito caldamente te, fgr e tutti quanti a non scaricare
le vostre frustrazioni sui vostri interlocutori Usenet. Loro non
c'entrano.
Anche perche' se centrassero, forse sarebbe il momento di rivedere a
fondo la vostra vita e soprattutto spegnere il computer :-)
Ciao,
Nicola


Grazie, Max :-)
Confesso che al momento di inviare il mio messaggio il dubbio e' venuto
pure a me ed ho controllato. Buona, vecchia Accademia della Crusca!
Ciao,
Nicola

fondo la vostra vita e soprattutto spegnere il computer :-)
...ecco bravo, spegnilo un po' il computer... !!!