Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-01-2002, 12: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, 15: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, 17: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, 17: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, 18: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, 18: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, 18: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, 19: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, 20: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, 20: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, 20: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, 20: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, 23: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, 17: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, 19: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, 19: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, 19: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, 22: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, 02: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, 09: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


DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ESA ha proposto un aumento del budget da...
Piratare Battlefield 6? Davvero una pess...
Arriva Veeam Data Platform v13. Pi&ugrav...
Framework interrompe la vendita di RAM: ...
Tachyum inventa le memorie TDIMM: una nu...
Roborock Q7 TF+, il robot economico cost...
Osca rinasce: le auto dei fratelli Maser...
Hlpy, la tecnologia al servizio dell’ass...
Ericsson rilancia sul 5G Standalone: l’I...
Black Friday Amazon: arrivano i super-sc...
Seagate raggiunge 6,9 TB per piatto con ...
Samsung lancia la One Shot Challenge: co...
Dell: il passaggio da Windows 10 a Windo...
Black Friday Speaker: JBL, Bose, Sony, M...
Hai un router ASUS? La nuova falla in Ai...
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: 22:13.


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