Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-01-2002, 11:26   #1
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Overloading Operatori

friend ostream &operator << (ostream &out, Person &Record);

friend istream &operator >> (istream &in, Person &Record);

friend inline int operator << (const Person &oper1, const Person &Record);


Ho ridefinito gli opeatori qui sopra, però quando tento di usare il terzo (all'interno di un test) mi viene dato un errore da parte del compilatore.

Grazie.
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 14:48   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quale errore ?

Sicuro che possa essere const il parametro di sinistra dello schift logico ? Solitamente non lo è...sarà per questo ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 16:02   #3
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
se conpilo senza fare uso di questo operatore logico non viene dato alcun errore, ma se invece magari inserisco:

if (var1 << var2 )
cout << "Ciao" << endl;

mi viene dato un errore.

Booo
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 16:23   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sì, ma quale errore ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 17:24   #5
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
main.cpp: In function `int main ()':
main.cpp:128: invalid operands of types `Person *' and `Person *' to
binary `operator<<'
make: [main] Error 1 (ignored)

Ecco l'errore che mi da' il compilatore.

Non saprei.....
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 17:40   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
var1 e var2 sono dichiarate così ?

Person var1, var2;

Sembra che le veda come puntatori....
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 17:52   #7
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Le variabili le ho dichiare dinamicamente:
Person *var1 = new Person;
Person *var2 = new Person;

Potrebbe essere questo l'errore???

Per caso dovrei fare:
if (*var1 >> *var2)
cout <<"..." ;


Grazie
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 18:09   #8
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Ho provato a fare come ho scritto sopra, ma niente.

Bo, se sai come mai non funziona te ne sarei grato.
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 19:01   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
A me funziona...ho fatto qualche prova...

#include <iostream.h>

class Person {
int num;
public:
Person():num(1){};
friend int operator<< (const Person &p1, const Person &p2);
};

inline int operator<< (const Person &p1, const Person &p2) { return p1.num+p2.num; }

void main()
{
Person var1, var2, *var3, *var4;
var3 = new Person;
var4 = new Person;
int i = var1 << var2;
cout << i;
i = *var3 << *var4;
cout << i;
delete var3;
delete var4;
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 19:02   #10
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Il problema sta nel fatto che la funzione si aspetta due oggetti di quel tipo ( da passare come reference ) , mentre tu passi solo il puntatore . Devi invece dereferenziarlo prima.
Quello che hai scritto tu va quasi bene,
Quasi perche' il compilatore probabilmente prima cerca di fare lo shift e poi usare l'operatore << ( almeno penso ).

Con

if ( (*var1) << (*var2) )
cout << "Ciao" << endl;


Dovrebbe funzionare tutto =)
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 19:35   #11
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Ho provato a fare quello che mi avete consigliato, ma non funziona. Non è che mi può dare problemi problemi questa funzione ????

friend ostream &operator << (ostream &out, Person &Record);

Ho provato da solo il codice di cioci e tutto funzionava.

Ciao Grazie
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 19:44   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Boh...a me funzionano anche gli altri operatori...

#include <iostream.h>

class Person {
int num;
public:
Person():num(1){};
friend int operator << (const Person &p1, const Person &p2);
friend ostream &operator << (ostream &out, Person &Record);
friend istream &operator >> (istream &in, Person &Record);
};

inline int operator<< (const Person &p1, const Person &p2) { return p1.num+p2.num; }

ostream &operator << (ostream &out, Person &Record)
{
return (out << Record.num);
}

istream &operator >> (istream &in, Person &Record)
{
return (in >> Record.num);
}

void main()
{
Person var1, var2, *var3, *var4;
var3 = new Person;
var4 = new Person;
int i = var1 << var2;
cout << i;
i = *var3 << *var4;
cout << i << endl;

cin >> var1;
cin >> *var3;
cout << var1 << " " << *var3 << endl;

delete var3;
delete var4;
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2002, 22:10   #13
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Grazie, adesso provo, ti faccio sapere.

Ancora grazie
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 16:11   #14
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Ho provato, ma ancora non mi funziona.
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 18:43   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non so che dirti...in teoria non importa quale sia il "contenuto" della classe...la dichiarazione degli opertori che usato nell'esempio dovrebbe andare bene lo stesso. Quindi a questo punto il problema è altrove... Ma che errore ti da ? Sempre il solito ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 18:51   #16
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Si si, sempre il solito errore.

Vabbe' provero' a controllare anche tutto il resto.

Ciao Grazie
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 18:54   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ma la famosa riga 128 in cui viene generato l'errore com'è ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 21:48   #18
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
La riga 128 è cosi' scritta:

i = *ciao1 << *ciao2 ;

dove i è una variabile di tipo intero
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2002, 01:10   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E ciao1 e ciao2 come sono dichiarate...l'errore esatto è sempre quello che hai scritto sopra ? Hai provato con le parentesi ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2002, 08:09   #20
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
Si si, le ho dichiarate e ho provato anche con le parentesi.
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S
HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5
Utenti con cui ho trattato
Poix81 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
La NASA ha lanciato il nuovo Nancy Grace...
22 offerte Amazon da non perdere, dalla ...
Bose QuietComfort Earbuds a 129,95€: ANC...
L'unico con tante scorte, non fatevi sca...
Torna il super doppio sconto sulle e-bik...
Offerte Amazon componenti PC: RTX 5060 T...
Crucial Pro DDR5 da 32GB a 389,99€: perc...
Fable 5, il modello più potente d...
PC all-in-one Lenovo super elegante, per...
Lo Smart TV più venduto su Amazon...
Periferiche gaming in offerta su Amazon:...
L'IA non è una bolla, ma pu&ograv...
Il cinema in salotto: oggi TV Xiaomi QLE...
Passa a ho. Mobile, fino a fine agosto c...
Ai Giochi di Pechino i robot prendono fu...
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: 20:44.


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