Explizit initialisiert-Mitglied, das nicht über eine default-Konstruktor

Ich versuche zum instanziieren ein Objekt, das hat keinen Standard-Konstruktor, so dass auf Sie verwiesen werden kann von allen Methoden innerhalb der Klasse. Als ich erklärte, dass es in meiner header-Datei, aber der compiler sagt, dass der Konstruktor für die Klasse erstellen, müssen explizit initialisiert das Mitglied, und ich kann nicht herausfinden, wie das zu tun.

Wirklich dankbar für Eure Antworten, danke im Voraus!

Snippet:

MyClass.h

include "MyOtherClass.h"

class myClass {

    private:
        MyOtherClass myObject;

    public:
        MyClass();
        ~MyClass();
        void myMethod();

}

MyClass.cpp

include "MyClass.h"

MyClass::MyClass() {

   MyOtherClass myObject (60);
   myObject.doSomething();

}

MyClass::myMethod() {

    myObject.doSomething();

}

MyOtherClass.h

class MyOtherClass {

   private:
      int aNumber;

   public:
      MyOtherClass (int someNumber);
      ~MyOtherClass();
      void doSomething();
}

MyOtherClass.cpp

include "MyOtherClass.h"

MyOtherClass::MyOtherClass (int someNumber) {
   aNumber = someNumber;
}

void MyOtherClass::doSomething () {
    std::cout << aNumber;
}
  • Sie können erstellen Sie einen Zeiger und dynamisch zuordnen es bei der Initialisierung Website.
  • Wenn Sie tun kann die Initialisierung bei der Initialisierung der Liste, das ist Ihre beste option, siehe diese Frage. So wäre es MyClass::MyClass() : myObject(60) { }
  • Die Initialisierung der Liste gearbeitet, ich danke Ihnen sehr!!!
  • Ich verstehe nicht, das ein Objekt hat keinen Standard-Konstruktor, so dass auf Sie verwiesen werden kann von allen Methoden innerhalb der Klasse. Können Sie erklären, Ihre Logik hier? AFAIK, kann jedes Mitglied verwiesen werden, die von jedem anderen Mitglied, unabhängig von seiner Konstruktion.
  • Möglich, Duplikat der Konstruktor für " müssen explizit initialisiert die Referenz Mitglied "
Schreibe einen Kommentar