С++ как инициализировать конструктор отдельного класса из конструктора класса?

в основном то, что я пытаюсь достичь, это создать локальный (и частный) экземпляр класса deltaKinematics в классе geneticAlgorithm

на Я:

class DeltaKinematics; //class is defined in separate linked files

class GeneticAlgorithm {
  //private  
    DeltaKinematics deltaRobot;

public:

    GeneticAlgorithm(); //constructor

};

это все нормально, но когда я иду объявить GeneticAlgorithm конструктор, я не могу понять, как создать экземпляр DeltaKinematics

это geneticAlgorithm.cpp конструктора:

GeneticAlgorithm::GeneticAlgorithm(){ //The error given on this line is "constructor for 'GeneticAlgorithm' must explicitly initialize the member 'deltaRobot' which does not have a default constructor"

    DeltaKinematics deltaRobot(100); //this clearly isn't doing the trick

    cout << "Genetic Algorithmic search class initiated n";
}

как мне инициализировать этот локальный экземпляр?

2 ответов


список инициализаторов членов:

GeneticAlgorithm::GeneticAlgorithm() : deltaRobot(100) {
}

GeneticAlgorithm::GeneticAlgorithm() : deltaRobot(100) {
    cout << "Genetic Algorithmic search class initiated \n";
}

Примечание : после имени конструктора: это начало последовательности инициализации переменных-членов данных класса. Они появляются как вызов их конструкторов с параметрами, которые вы хотите передать, и должны быть в том же порядке, в котором они объявлены.