Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
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: 16215
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: 16215
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: 16215
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


Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Eni mette un tetto ai prezzi dei carbura...
BYD Seagull (Dolphin Surf), l'elettrica ...
Multa milionaria per un data center del ...
F-Droid 2.0 si aggiorna con una nuova gr...
Microsoft ridisegna Copilot: dalla chat ...
Volkswagen porterà 20 videogiochi...
Troppa IA storpia: OpenAI licenzia in tr...
Marathon, Bungie svela i contenuti dell'...
Autunno, tempo di potature: i tagliasiep...
Meta Muse, due sviluppatori riescono a o...
Google AI Pro gratis: festa a sorpresa p...
MacSync colpisce macOS usando i calendar...
L'agente IA cancella 48 mila file in 103...
Jensen Huang avverte: l'AI può aiutare a...
Elettrico Renault in arrivo in Spagna: 6...
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: 03:09.


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