Notwist hat geschrieben:
Das mit show() & hide() im Konstruktor habe ich nicht verstanden. Muss man nicht für jedes neues Fenster-Objekt (also jeder neuen Klasse, die ein Fenster darstellt) ein show() aufrufen?
nein, damit meinte ich das Popup. Allerdings geht das ja von allein wieder weg und anzeigen kann man es mit
exec(). Hätte wohl doch erstmal die Doku lesen sollen
Notwist hat geschrieben:
Wann würdest Du generell ein Objekt mit
und wann mit
erschaffen? New allokiert ja einen festen Speicherplatz. Was passiert denn genau ohne das new (ich habe noch sehr viele Verständnis-Lücken in C++)?
Ich bin eigentlich eher für die 'statische' Variante, also ohne new. Da muss man sich nämlich nicht um das Löschen zu kümmern

Sobald du ein Objekt innerhalb einer Klasse verwendest würde ich immer ohne Pointer arbeiten. Das Objekt wird automatisch im Konstruktur der Klasse, in der Du das Objekt definiert hast, aufgerufen. Es passiert im Grunde das:
Hat eine Klasse keinen Standardkonstruktor, sondern braucht mind. eine Variable, musst Du dies selbst erledigen:
Notwist hat geschrieben:
Und nochmal zum Programmierstil. Du setzt ein m_ vor die Variablen, wenn sie in der Klasse private sind oder wie machst Du das?
Dabei geht es eigentlich nur darum, möglichst schnell ohne grosses Nachschauen zu wissen, was das für eine Variable ist. Mit einer Variablenezeichnung a'la 'popup' kann man das nicht so ohne weiteres rausfinden. Heisst es dagegen m_popup weiss man zumindest schon mal, dass die Variable zu der Klasse gehört (egal ob private, protected oder public). Ein m_cPopup würde mir evtl. sogar sagen, dass dies ein Object ist und nicht ein int ( m_iPopup ) oder ein char-String ( m_szPopup ). Dies nennt man
ungarische Notation. Wobei ich für Ints eben i anstatt n verwende
Notwist hat geschrieben:
Habe noch nie so große Projekte bearbeitet, da ging das bis jetzt immer ohne, aber ich will mir ja einen besseren Stil angewöhnen. Du scheinst da sehr viel erfahrener zu sein. Was für Vor- und Nachteile hat das alles? Klar, man muss nicht immer in die Header-Datei schauen, um zu sehen, wie die Variablen deklariert sind.
Ausserdem benutze ich noch
astyle mit den Parametern 'astyle -slP --convert-tabs'. Es macht imo den Code sehr viel lesbarer. Bei mir muss astyle kaum mehr was ändern so sehr habe ich mir den Stil angewöhnt.
Der Nachteil davon ist, dass sobald Du in einem anderen Projekt arbeitest, welches nicht von dir ist ( sei es privat oder auf Arbeit), es unter Garantie andere Stilfestlegungen gibt und Du dich anpassen musst.