Konstructor, init reihenfolge!?



  • Hallo Leute,

    ich habe diesen Konstruktor:

    Ms3HostDialog::Ms3HostDialog(CWnd* pParent /*=NULL*/)
    	: CDialog(Ms3HostDialog::IDD, pParent)
    	, IHostControl()
    	, ILogger(Debug)
    	, _tb()
    	, _ioAdapter(new TcpClientAdapter())
    	, _connector(new colaLight::Connector(_ioAdapter, &_tb, this))             //1
    	, _dataProvider(new Ms3DataProvider(_connector, &_tb))                     //4
    	, _scanFieldTimer(this, 50, Ms3HostDialog::TimerThread, false)
    	, _contaminationControl(&_tb, _connector)
    	, _displayControl(&_tb, _connector)                                                           //2
    	, _scanfieldControl(&_tb, _dataProvider)                                                  //3
    {
    }
    

    und wie ich erwartet hätte , werden die members nich in der Reihen folge ausgeführt wie im Code!? Aber laut Google sollte
    es so sein?

    2 und 3 stack, 1 und 4 heap..

    oder denke ich falsch?



  • @SoIntMan sagte in Konstructor, init reihenfolge!?:

    Aber laut Google sollte
    es so sein?

    Nein, wie kommst du darauf?



  • Sie werden in Reihenfolge der Definition der Member ausgeführt, und der Compiler sollte das auch anmerken, wenn man die Warnungen entsprechend eingestellt hat.



  • @john-0 sagte in Konstructor, init reihenfolge!?:

    Sie werden in Reihenfolge der Definition der Member ausgeführt, und der Compiler sollte das auch anmerken, wenn man die Warnungen entsprechend eingestellt hat.

    ahhhh.. klick.. so rum;)

    EDIT: wie stelle ich das in den complier warnstufen ein? habe hier vs2008 ..

    @manni66 sagte in Konstructor, init reihenfolge!?:

    Nein, wie kommst du darauf?

    ja sorry zu schnell recherchiert;)

    Ungeduld;)



  • @SoIntMan sagte in Konstructor, init reihenfolge!?:

    EDIT: wie stelle ich das in den complier warnstufen ein? habe hier vs2008 ..

    https://mihai-nita.net/2010/05/10/changing-default-vs-warning-level/

    Weiß nicht ob die Screenshots von VS 2008 sind, aber vom Datum der Veröffentlichung könnt's schon hinkommen.

    // Kann Dir aber auch nicht garantieren daß cl v15 dann bei unterschiedlicher Reihenfolge in der Initialisierung vs. Definition warnt. Probier's halt aus. Die Reihenfolge in sync halten ist nie eine blöde Idee.



  • @SoIntMan sagte in Konstructor, init reihenfolge!?:

    habe hier vs2008 ..

    Warum? Der Compiler ist völlig veraltet.



  • @manni66 sagte in Konstructor, init reihenfolge!?:

    Warum? Der Compiler ist völlig veraltet.

    Weil ich eine ActiveX/App (MFC) (WinCE 6.0) Anwendung mache..



  • Weil ich eine ActiveX/App (MFC) (WinCE 6.0) Anwendung mache..

    Du arme ... 🙂

    Zum Entwickeln verwenden wir hier VS 2017 .... und bauen damit auch für x64
    Für WinEC7 / Arm haben wir dann nur den Build auf basis von VS 2008.
    Ist schon schmerzhaft genug, auf die ganzen C++ Features verzichten (lambdas, auto, template) zu müssen, da sollt man wenigstens paar Annehmlichkeiten von der IDE mitnehmen. Da nehm ich das expliziete Suchen nach dem Fehler (wince baut nicht, x64 schon ??? ) in Kauf.

    Vielleicht wär das auch ne Option ... MFC / ActiveX sollte auch mit x64 und etwas moderneren compiler gehen ... oder verwendets zu geräte / wince spezifische dinge ?



  • @RHBaum sagte in Konstructor, init reihenfolge!?:

    Du arme ...
    Zum Entwickeln verwenden wir hier VS 2017 .... und bauen damit auch für x64
    Für WinEC7 / Arm haben wir dann nur den Build auf basis von VS 2008.
    Ist schon schmerzhaft genug, auf die ganzen C++ Features verzichten (lambdas, auto, template) zu müssen, da sollt man wenigstens paar Annehmlichkeiten von der IDE mitnehmen. Da nehm ich das expliziete Suchen nach dem Fehler (wince baut nicht, x64 schon ??? ) in Kauf.
    Vielleicht wär das auch ne Option ... MFC / ActiveX sollte auch mit x64 und etwas moderneren compiler gehen ... oder verwendets zu geräte / wince spezifische dinge ?

    Das kling gut, und ist bestimmt nicht schlecht... könnt ihr dann auch vc++6 in vs2017 compilieren und debuggen? sorry ich habe mich mit so devOPs zeugs nie so auseinander gesetzt .. das ist nervig;)


Anmelden zum Antworten