webForumDet fria alternativet

Skicka med objekt vid fönsteranrop i QT?

C/C++

5 svar · 239 visningar · startad av Mattias

Medlem sedan mars 2000205 inlägg
Frågan#1

Håller på och trixar gränssnitt i C++ med Trolltech QT, men har problem med hur man skickar med ett objekt till konstruktorn för ett nytt fönster, dvs vid öppning av ett nytt fönster. Nedan har jag klippt ut relevant kod som jag använder vid anropet/öppnandet.

//Anrop från mainwin.cpp 
Mail *tmpmail = new Mail();
tmpmail->set_address( "mrx@home.se" );  
NewMailWindow* nmw = new NewMailWindow( tmpmail );

//konstrukturhuvud i NewMailWindow
NewMailWindow::NewMailWindow( Mail repmail ) {...

//Deklaration av konstruktorn i headerfilen
NewMailWindow( Mail repmail );

Jag får följande fel vid kompilering, så det är nåt fel med objektskickningen. Frågan är vad och hur man ska skriva istället? När jag skickar objekt till "vanliga" funktioner använder man ju ovanstående anrop/mottagning.

mainwin.cpp:426: no matching function for call to
`NewMailWindow::NewMailWindow(Mail*&)'

Tacksam för svar!

Medlem sedan maj 20018 027 inlägg
#2

Du skickar en pekare till en "Mail", men den konstruktor som du har redovisat här, vill ha själva "Mail", alltså inte pekaren.

Medlem sedan mars 2000205 inlägg
#3

Aha! Ja, nu ser jag att det ser lite konstigt ut. Tack för påpekandet. Är dock ändå osäker på hur man överför objektet till det nya fönstret och tar emot det i konstruktorn. Är tacksam för förslag.

Medlem sedan maj 20018 027 inlägg
#4

Du skulle kunna definiera om konstruktorn till att ta emot antingen en pekare eller referens till "Mail". Då är det precis samma "Mail"-objekt som den arbetar mot, och inte en kopia.

Medlem sedan mars 2000205 inlägg
#5

Jag lade in "NewMailWindow::NewMailWindow(Mail * repmail)" som konstruktorhuvud, men det funkade ändå inte. Därefter testade jag emellertid att byta namn på det objekt som skickas iväg till samma namn som det som mottas i konstruktorn, Dvs från "tmpmail" till "repmail". Och först DÅ behagade det hela fungera. Skumt... :)

Tack för tipsen.

Medlem sedan maj 20018 027 inlägg
#6

Jag kan bara hålla med om att det var skumt.

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)