Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
MSI FORGE GK600 TKL WIRELESS: switch lineari hot-swap, tripla connettività, display LCD e 5 strati di fonoassorbimento. Ottima in gaming, a 79,99 euro
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-09-2009, 21:35   #1
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
[.net] Rilevare dangling object

Come da titolo, voglio rilevare se un oggetto
System:: Drawing::Graphics^
è stato inizializzato o meno.

In questo caso ho un oggetto di questo tipo, ma in generale come si può rilevare se un oggetto gestito è stato inizializzato o meno?

Poi un'altra domanda che non centra nulla:
come è possibile fare l'overload dell'operatore = senza creare le relative getters e copiare membro a membro da un oggetto all'altro?

Se io ho una classe reticolo e creo:
Codice:
reticolo a;
reticolo b = reticolo(x, y, z);

e faccio:
a = b;
devo definire:
Codice:
reticolo^ operator=(reticolo r) {
this->a = r.geta();
this->b = r.getb();
this->c = r.getc();
return this;
}
Non c'è un modo più semplice?
_Claudio è offline   Rispondi citando il messaggio o parte di esso
Old 29-09-2009, 22:22   #2
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da _Claudio Guarda i messaggi
Come da titolo, voglio rilevare se un oggetto
System:: Drawing::Graphics^
è stato inizializzato o meno.

In questo caso ho un oggetto di questo tipo, ma in generale come si può rilevare se un oggetto gestito è stato inizializzato o meno?
Mi sembra di capire che stai facendo riferimento al C++/CLI.
Non ti basta verificare se l'oggetto è != nullptr?

Quote:
Poi un'altra domanda che non centra nulla:
come è possibile fare l'overload dell'operatore = senza creare le relative getters e copiare membro a membro da un oggetto all'altro?

Se io ho una classe reticolo e creo:
Codice:
reticolo a;
reticolo b = reticolo(x, y, z);

e faccio:
a = b;
devo definire:
Codice:
reticolo^ operator=(reticolo r) {
this->a = r.geta();
this->b = r.getb();
this->c = r.getc();
return this;
}
Non c'è un modo più semplice?
Wow qui stai un pò mischiando C++ e C++/CLI, definisci l'operatore copia come se fossi in C++ ma gli fai ritornare una reference .NET.
Perchè non usare esclusivamente reference .NET?
Codice:
reticolo^ a = nullptr;
reticolo^ b = gcnew reticolo(x, y, z);

a = b;
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 29-09-2009, 22:55   #3
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Mi sembra di capire che stai facendo riferimento al C++/CLI.
Non ti basta verificare se l'oggetto è != nullptr?



Wow qui stai un pò mischiando C++ e C++/CLI, definisci l'operatore copia come se fossi in C++ ma gli fai ritornare una reference .NET.
Perchè non usare esclusivamente reference .NET?
Codice:
reticolo^ a = nullptr;
reticolo^ b = gcnew reticolo(x, y, z);

a = b;
Dunque nullptr funziona... avevo bisogno della parolina magica.

Può sembrare che io mi sia ammattito ma purtroppo ho una classe gestita (C++/CLI) che accede ad un oggetto graphics e mi gestisce il disegno in base a vari parametri.
Mi sono ammazzato scrivendo l'overload dell'operatore = e costruttori copia quando invece mi ero solo dimenticato un ^ nella definizione... mi sembrava strano che mi vedeva l'oggetto intero e non come riferimento, mannaggia a me, un intero pomeriggio perso così.

Non capisco se questo sia il bello o il brutto del realizzare un software.

Comunque grazie 1000, la ruggine inizia a scrostarsi piano piano, anni di Java e programmazione sul web sono deleteri rispetto alla gestione diretta di TUTTO che si fa con C++.
_Claudio è offline   Rispondi citando il messaggio o parte di esso
Old 29-09-2009, 23:56   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da _Claudio Guarda i messaggi
Comunque grazie 1000, la ruggine inizia a scrostarsi piano piano, anni di Java e programmazione sul web sono deleteri rispetto alla gestione diretta di TUTTO che si fa con C++.
Di niente ma...
quello lì NON E' C++.
E' C++/CLI che a dispetto del nome ha poco a che spartire con il vero C++.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 08:48   #5
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Di niente ma...
quello lì NON E' C++.
E' C++/CLI che a dispetto del nome ha poco a che spartire con il vero C++.
Lo so, e maledico il giorno che la microsoft ha deciso di tradurre tutto in CLI cambiando notazioni e quant'altro... potevano lasciare almeno la sintassi uguale al C++... troppo semplice.

Il programma che sto facendo ha le classi base in C++ puro, e l'interfaccia Windows Forms in C++/CLI, e quando devo integrare pani e pesci sono sempre testate al muro.
_Claudio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
iPhone 18 Pro: il componente che garanti...
DeepL alza il livello: con Voice-to-Voic...
Apple sta utilizzando sempre più ...
Il MacBook Neo vende tanto? Microsoft le...
AST SpaceMobile BlueBird 7: Blue Origin ...
È il momento migliore per comprar...
Svendita MacBook Pro: c'è il mode...
Oggi questa TV TCL QLED da 43 pollici co...
Il caricatore multiplo da 200W che va be...
Top 7 Amazon, il meglio del meglio di qu...
Spento lo strumento LECP della sonda spa...
Voyager Technologies ha siglato un accor...
GoPro annuncia la linea MISSION 1 con tr...
Alcune varianti dei futuri Samsung Galax...
Il ridimensionamento di OnePlus in Europ...
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: 23:40.


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