Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » Destruktor will nicht, Qt4

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.09.2007, 10:28 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Hi,

ich hab in meiner main() Methode 2 Objekte erstellt, die ich wieder gelöscht haben will.
Also ruf ich einfach delete nach return QApplication.exec() auf - aber eine debug ausgabe, die ich in den Destruktoren eingefügt hab bleibt aus ... Irgendwie steh ich grad auf dem schlauch ...


C++:
#include <QApplication>
#include <StLoginDialog.hpp>
#include <StGuiStart.hpp>
#include <QObject>

int main(int argc, char* argv[])
{
  //Resourcedatei laden
  Q_INIT_RESOURCE(files);

  QApplication app(argc, argv);

  //Login Dialog starten
  StLoginDialog *loginDialog = new StLoginDialog();

  //Wird benötigt, wenn Login korrekt war
  StGuiStart *gui = new StGuiStart();

  //Signals abfangen, für den login
  QWidget::connect(loginDialog, SIGNAL(loggedIn()), loginDialog, SLOT(close()));
  QWidget::connect(loginDialog, SIGNAL(loggedIn()), gui, SLOT(startGui()));
  QWidget::connect(loginDialog, SIGNAL(loginFailed()), loginDialog, SLOT(loginFail()));
  loginDialog->show();
  
  return app.exec();
  delete loginDialog;
  delete gui;
}

--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.09.2007, 10:31 Uhr
okraits



Wie soll in main() nach return noch was ausgegeben werden?
--
www.okraits.de/
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.09.2007, 10:38 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Ich kann die Objekte ja vorher nicht löschen, weil sie bis dahin noch benötigt werden.

Aber wenn ich mir das so anschaue ... In keinem der Qt Examples befindet sich ein Destruktor?!
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.09.2007, 10:47 Uhr
Blubber2063



Alle Klassen die du als Parent etc, bei Qt Objekten registrierst, sollten automatisch vernichtet werden wenn die Parentklassen vernichtet werden, aber immer skeptisch sein, da kann man leich was übersehen. Allerdings sehe ich keinen Grund warum dein Hauptfenster und der Startdialog auf dem Heap liegen müssen, wenn du das sein lässt werden sie ja abgeräumt. Und nebenbei sollte spätestens beim beenden des Programms seine Resourcen ja eh vom BS abgeräumt werden.
Dieser Post wurde am 13.09.2007 um 10:48 Uhr von Blubber2063 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.09.2007, 11:18 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Hät ich auch selber drauf kommen können ...
Danke trotzdem, räumt jetzt brav alles auf ... !
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: