Básicamente lo que estoy tratando de lograr es la creación de una instancia local (y privada) de la clase deltaKinematics
en la clase geneticAlgorithm
C++ - ¿Cómo inicializo un constructor de una clase separada del constructor de una clase?
En el archivo geneticAlgorithm.h
tengo:
class DeltaKinematics; //class is defined in separate linked files
class GeneticAlgorithm {
//private
DeltaKinematics deltaRobot;
public:
GeneticAlgorithm(); //constructor
};
todo esto está bien, pero cuando voy a declarar el constructor GeneticAlgorithm
, no puedo encontrar la manera de construir la instancia de DeltaKinematics
Este es el constructor 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";
}
¿Cómo hago para inicializar esa instancia local?
Gracias @Erik eso es lo que buscaba. Fuera de interés, ¿cuál es el nombre de esa construcción de lenguaje? Soy muy nuevo en C++ y sigo teniendo control sobre la jerga –
Es una lista de inicializadores de miembros, utilizada para inicializar las clases base y las variables de los miembros. Tenga en cuenta que se llamarán en el orden en que las variables miembro son * declaradas *, no en el orden en que las especifica. Puede inicializar varios miembros como este: 'Foo :: Foo(): BaseClass (0), MemVar (1), AnotherMemVar (2) {}' – Erik
¿Y si ese 100 no es una constante sino una variable? para calcular antes de pasar al constructor – Alexander