Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-05-2006, 15:55   #1
gabriele84
Senior Member
 
L'Avatar di gabriele84
 
Iscritto dal: Oct 2004
Messaggi: 1380
C++ "Ambiguos overload operator" PERCHE'?

#include <iostream.h>

istream &operator>>( istream &s, bool &b)
{
int r;
s >> r;
if (r)
b=true;
else
b=false;
return s;
}

int main()
{
bool aperto=true;
int num_tes,i;
List<Tessera> garage;
while (aperto)
{
cout << "Numero di tessera cliente: ";
cin >> num_tes;
garage.Inserisci(num_tes);
cout << "Immettere: 0=Chiusura, 1=Nuovo Cliente";
cin >> aperto;
//MI DA ERRORE SU QUESTA LINEA
}
cout<<"Posto n.\tCliente\n";
for(i=0;i<garage.PostiOccupati();i+)
cout<<" "<<i<<"\t\t "<<garage.Posto(i)<<endl;
return 0;
}

poi su manca la parte dove definisco la classe tessera e le varie funzioni

AIUTATEMI
__________________
Ho trattato con djgusmy85,andreabiraghi,slimsh@dy,nicolojudo,ekidna,hidro,djeasy,johnf(postprova), stefanonweb(postprova),PuNkEtTaRo,emanuelito,obi_wan,markese,alenter,benjix,superdigi,fra_bo,
Lord_Crassus,Andr3a83,mcfour,yeoshuha,lampuga,gargyu,emmedi,ranFart
gabriele84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2006, 20:07   #2
gabriele84
Senior Member
 
L'Avatar di gabriele84
 
Iscritto dal: Oct 2004
Messaggi: 1380
HELP MEEEEEEEE
__________________
Ho trattato con djgusmy85,andreabiraghi,slimsh@dy,nicolojudo,ekidna,hidro,djeasy,johnf(postprova), stefanonweb(postprova),PuNkEtTaRo,emanuelito,obi_wan,markese,alenter,benjix,superdigi,fra_bo,
Lord_Crassus,Andr3a83,mcfour,yeoshuha,lampuga,gargyu,emmedi,ranFart
gabriele84 è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2006, 08:39   #3
gabriele84
Senior Member
 
L'Avatar di gabriele84
 
Iscritto dal: Oct 2004
Messaggi: 1380
Nessuno mi aiuta?
__________________
Ho trattato con djgusmy85,andreabiraghi,slimsh@dy,nicolojudo,ekidna,hidro,djeasy,johnf(postprova), stefanonweb(postprova),PuNkEtTaRo,emanuelito,obi_wan,markese,alenter,benjix,superdigi,fra_bo,
Lord_Crassus,Andr3a83,mcfour,yeoshuha,lampuga,gargyu,emmedi,ranFart
gabriele84 è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2006, 08:47   #4
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Innanzitutto, sei su un forum e non in chat, quindi non avere fretta e lascia sempre passare almeno 24 ore prima di ripetere la richiesta di aiuto.

Poi: a naso, direi che c'è un problema di livello di visibilità.
Tu ridefinisci a modo tuo l'operatore >>, ma lo fai nel corpo principale del programma, quindi l'overloading vale in tutto il programma.
Ma l'operatore >> è già ridefinito all'interno della classe istream.
Di conseguenza, alla riga in cui ti dà errore, il compilatore non sa se deve usare >> o istream::operator>>, ossia non è in grado di scegliere tra la definizione data da te e quella fornita dalla classe istream.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2006, 09:41   #5
gabriele84
Senior Member
 
L'Avatar di gabriele84
 
Iscritto dal: Oct 2004
Messaggi: 1380
Quote:
Originariamente inviato da Ziosilvio
Innanzitutto, sei su un forum e non in chat, quindi non avere fretta e lascia sempre passare almeno 24 ore prima di ripetere la richiesta di aiuto.

Poi: a naso, direi che c'è un problema di livello di visibilità.
Tu ridefinisci a modo tuo l'operatore >>, ma lo fai nel corpo principale del programma, quindi l'overloading vale in tutto il programma.
Ma l'operatore >> è già ridefinito all'interno della classe istream.
Di conseguenza, alla riga in cui ti dà errore, il compilatore non sa se deve usare >> o istream::operator>>, ossia non è in grado di scegliere tra la definizione data da te e quella fornita dalla classe istream.

Si ma come risolvo?
Voglio dire,
se io ridefinisco un operatore, il compilatore non è costretto ad usare la mai definizione?
Anche sui libri di testo riporta esempi come il mio programma...
__________________
Ho trattato con djgusmy85,andreabiraghi,slimsh@dy,nicolojudo,ekidna,hidro,djeasy,johnf(postprova), stefanonweb(postprova),PuNkEtTaRo,emanuelito,obi_wan,markese,alenter,benjix,superdigi,fra_bo,
Lord_Crassus,Andr3a83,mcfour,yeoshuha,lampuga,gargyu,emmedi,ranFart
gabriele84 è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2006, 09:59   #6
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da gabriele84
come risolvo?
Non sono uno specialista del C++, ma le cose si imparano anche risolvendo i problemi, quindi in finale cercare di risponderti fa bene anche a me.
Dunque: sempre a naso, direi che dovresti definire una sottoclasse di std::istream in cui ridefinisci l'operatore >>, e creare un'istanza di tale classe in cui "copi" cin e della quale usi il >>.
Quote:
Anche sui libri di testo riporta esempi come il mio programma
Che testo stai usando?
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2006, 10:45   #7
gabriele84
Senior Member
 
L'Avatar di gabriele84
 
Iscritto dal: Oct 2004
Messaggi: 1380
Quote:
Originariamente inviato da Ziosilvio
Non sono uno specialista del C++, ma le cose si imparano anche risolvendo i problemi, quindi in finale cercare di risponderti fa bene anche a me.
Dunque: sempre a naso, direi che dovresti definire una sottoclasse di std::istream in cui ridefinisci l'operatore >>, e creare un'istanza di tale classe in cui "copi" cin e della quale usi il >>.

Che testo stai usando?
La programmazione ad oggetti ATLAS
ma il discorso è...
se devo andare a fare tuto sto parapiglia, a che serve l'operator overload?
Voglio dire il guadagno sta appunto nell'attuare una ridefinizione in poche righe altrimenti tanto vale creare una funzione che faccia il suo dovere e amen!
Grazie dell'aiuto
__________________
Ho trattato con djgusmy85,andreabiraghi,slimsh@dy,nicolojudo,ekidna,hidro,djeasy,johnf(postprova), stefanonweb(postprova),PuNkEtTaRo,emanuelito,obi_wan,markese,alenter,benjix,superdigi,fra_bo,
Lord_Crassus,Andr3a83,mcfour,yeoshuha,lampuga,gargyu,emmedi,ranFart
gabriele84 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2006, 11:13   #8
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da gabriele84
se devo andare a fare tuto sto parapiglia, a che serve l'operator overload?
Fare l'overload di un operatore, o di una funzione, significa poter usare la stessa parola con significati diversi in contesti diversi.
Ad esempio, l'operatore binario >> ha il significato di shift quando i suoi operandi sono interi, ossia quando il contesto è (int,int); ma ha il significato di lettura di un token che rappresenta un numero in virgola mobile quando il suo operando sinistro è un riferimento a un oggetto di tipo istream e il suo operando destro è un double, ossia quando il contesto è (istream&,double).
Ora, tu hai definito un'altra volta >>, ma sempre in un contesto (istream&,double). Il risultato è che il compilatore non sa quale usare.
La soluzione che ti avevo detto prima porta il contesto di >> in una cosa del tipo (subclass_of_istream&,double), che non dà problemi di interpretazione.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
5G slicing per le comunicazioni di emerg...
BYD SHARK, 436 CV e fino a 90 km in elet...
Quali sono i migliori produttori di tecn...
Come guardare YouTube senza pubblicit&ag...
Il telescopio spaziale europeo ESA Eucli...
Addio stampa 3D a strati: il metodo che ...
Data center ed energia green: Aruba acqu...
Windows scarica software non richiesto q...
Auto europea, Bloomberg: uno stabiliment...
C'è un'altra app che sfida Google...
Apple testa i chip di memoria cinesi CXM...
GeForce RTX 5000 SUPER: le schede video ...
Crash a raffica per gli utenti di Androi...
Anthropic: la sua IA Mythos scandaglia i...
RxScanner, e non solo: come i piccoli mo...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v