¿Se puede llamar a un constructor desde otro constructor en C++? (Cadena de constructores)
¡Hola, colegas! Soy un desarrollador principiante de C++ y me encontré con un problema que me parece muy extraño. Tengo una clase con varios constructores. Todos hacen lo mismo: inicializan campos, asignan memoria, pero con diferentes parámetros. Por ejemplo, un constructor recibe nombre y edad, otro solo nombre (edad por defecto 0), y el tercero no recibe nada (todo por defecto).
Aquí está el código simplificado de lo que intento hacer:
class Person {
public:
std::string name;
int age;
// Constructor con dos parámetros
Person(const std::string& n, int a) : name(n), age(a) {
// alguna inicialización compleja, por ejemplo, verificación de edad
if (age < 0) age = 0;
std::cout << "Person created: " << name << ", " << age << std::endl;
}
// Constructor con un parámetro
Person(const std::string& n) {
// Quiero llamar aquí a Person(n, 0), pero esto no funciona
}
}