Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-10-2004, 12:52   #1
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
c++

ciao.
sto usando le qt della trolltech ma il problema e' relativo al c++.

io ho una classe lista.
ed ho una classe listitem.

voglio modificare la classe listitem ed aggiugerci qualche dato.

allora derivo la mia nuova classe dalla classe base listitem
Mylistitemublic listitem............

ora creo la mia lista.
poi creo un mio elemento e lo linko alla lista.
poi creo un sotto elemento e lo linko al primo elemento.

lista *ll=new lista();
Mylistitem *elem1=new Mylistitem(ll);
Mylistitem *elem2=new Mylistitem(elem1);

tutto bene fino alla 2°linea.
la terza mi da un errore di compilazione che e':

type Mylistitem is not a base type for type listitem.

tnks in advance
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 14:07   #2
71103
Bannato
 
Iscritto dal: Oct 2004
Città: Roma
Messaggi: 124
Il problema è nel parametro che passi al costruttore; alla 2^ linea gli passi un oggetto lista, alla 3^ un oggetto Mylistitem.
71103 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 14:09   #3
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
errore su errore.

non era quello il messaggio di errore ma:
no matching function for to call Mylistitem::Mylistitem(listitem*&)
candidates are:
Mylistitem:Mylistitem(lista * = 0)
Mylistitem:Mylistitem(const Mylistitem &)

nella documentazione della trolltech,listitem puo' essere costruito con
listitem(list)
listitem(listitem)
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 14:10   #4
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
nel secondo caso listitem e' figlio di un'altro listitem e cio' e del tutto regolare.

il problema e' che io non uno una classe nativa ma una derivata.
come posso raggirare il problema?
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 14:33   #5
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Re: c++

Il secondo overload richiede una reference, mentre tu gli passi un puntatore
Prova così, dovrebbe andare:

Codice:
lista *ll=new lista();
Mylistitem elem1(ll);
Mylistitem *elem2=new Mylistitem(elem1);
Ciao
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 14:42   #6
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
scusa ma qual'e' la differenza tra un reference e un puntatore?
(mancanza di studio del c++)--->sono accettati anche link.
sembra compilare ora guardo la funzionalita'.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 14:56   #7
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Link non ne ho
Comunque il c++ oltre al passaggio di valori e puntatori offre la possibiltà del passaggio per riferimento vero e proprio.
Svolge il passaggio che si potrebbe fare anche passando un puntatore in modo indiretto ma senza bisogno di specificarlo.
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 15:01   #8
71103
Bannato
 
Iscritto dal: Oct 2004
Città: Roma
Messaggi: 124
propongo una soluzione più elegante:

Codice:
lista *ll=new lista();
Mylistitem *elem1 = new Mylistitem(ll);
Mylistitem *elem2 = new Mylistitem(*elem1);
in questo modo elem1 ed elem2 sono dello stesso tipo
71103 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 15:20   #9
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
ho letto qualcosa sui reference....
x 71103 -----si solita cosa che dicevo anch'io........
ho provato 100 volte e non mi compilava evidentemente ero in coma.
ora compila, ma l'elemento non appare.
come sottoelemento di elem1

Ultima modifica di x110 : 11-10-2004 alle 15:25.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 16:01   #10
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Quote:
Originariamente inviato da x110
ora compila, ma l'elemento non appare.
come sottoelemento di elem1
Non conosco le qt però per sicurezza usa un puntatore come postato da 71103, perchè oltre all'eleganza eviti i problemi dovuti all'uscita dallo scope (quello che ho postato io usava una var locale).
Magari è proprio quello il problema.
Ciao
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2004, 17:55   #11
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
considera che se invece di usare
lista *ll=new lista();
Mylistitem *elem1 = new Mylistitem(ll);
Mylistitem *elem2 = new Mylistitem(*elem1);

uso

lista *ll=new lista();
listitem *elem1 = new listitem(ll);
listitem *elem2 = new listitem(elem1);(<-----attenzione:elem1 e non *elem1
----------------------------------------anche la documentazione dice un puntatore a e non un oggetto puntato.)

tutto funziona bene.
il problema e' giusto il fatto che il mio oggetto e' un derivato di listitem.
ciao.

Ultima modifica di x110 : 11-10-2004 alle 18:00.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2004, 15:18   #12
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
ok trovato.
nell'ereditare la classe listviewitem,
avevo lasciato un solo costruttore con la listview.

ora va molto bene.
x110 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Space Pioneer starebbe realizzando un pr...
SpaceX ritirerà ''a breve'' il Fa...
La Luna ha un nuovo cratere di grandi di...
ROG Cronox: ASUS alza l'asticella dei ca...
Lenovo annuncia nuovi sistemi per la vir...
M6 e M5 Ultra, i primi benchmark conferm...
La nuova falla della cybersecurity &egra...
The Blood of Dawnwalker, il sequel potre...
Colpiti i data center Amazon: irrecupera...
Google Wallet, nuova interfaccia in arri...
iPhone Duo, problemi di produzione per i...
Firefox diventa più veloce con PDF e JPE...
WhatsApp, arriva su iOS la nuova scorcia...
Snap presenta Specs: realtà aumentata, c...
SteamOS verso un cambiamento epocale: ar...
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:36.


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