En C++, las variables de clase se inicializan en el mismo orden en que aparecen en la declaración de clase.
Considere el siguiente código.
#include<iostream> using namespace std; class Test { private: int y; int x; public: Test() : x(10), y(x + 10) {} void print(); }; void Test::print() { cout<<"x = "<<x<<" y = "<<y; } int main() { Test t; t.print(); getchar(); return 0; }
El programa imprime el valor correcto de x, pero algún valor basura para y, porque y se inicializa antes que x como aparece antes en la declaración de clase.
Entonces, una de las siguientes dos versiones se puede usar para evitar el problema en el código anterior.
// First: Change the order of declaration. class Test { private: int x; int y; public: Test() : x(10), y(x + 10) {} void print(); };
// Second: Change the order of initialization. class Test { private: int y; int x; public: Test() : x(y-10), y(20) {} void print(); };
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA