C++ - 如何从类的构造函数初始化单独类的构造函数?

Zak*_*nry 7 c++ constructor initialization class

基本上,我想实现的是创建类的地方(私人)实例deltaKinematics中的类geneticAlgorithm

geneticAlgorithm.h我有的文件中:

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

class GeneticAlgorithm {
  //private  
    DeltaKinematics deltaRobot;

public:

    GeneticAlgorithm(); //constructor

};
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但是当我去声明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";
}
Run Code Online (Sandbox Code Playgroud)

如何初始化该本地实例?

Eri*_*rik 13

成员初始化列表:

GeneticAlgorithm::GeneticAlgorithm() : deltaRobot(100) {
}
Run Code Online (Sandbox Code Playgroud)

  • 它是一个成员初始化列表,用于初始化基类和成员变量.请注意,它们将在命令中调用成员变量*声明*,而不是按照您指定的顺序.你可以像这样初始化多个成员:`Foo :: Foo():BaseClass(0),MemVar(1),AnotherMemVar(2){}` (4认同)