С++ как инициализировать конструктор отдельного класса из конструктора класса?
в основном то, что я пытаюсь достичь, это создать локальный (и частный) экземпляр класса 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) {
cout << "Genetic Algorithmic search class initiated \n";
}
Примечание :
после имени конструктора: это начало последовательности инициализации переменных-членов данных класса. Они появляются как вызов их конструкторов с параметрами, которые вы хотите передать, и должны быть в том же порядке, в котором они объявлены.