es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es la importancia de la declaración int &x en la definición de clase en C++?

class Pointer {
private:
    int &x;
public:
    Pointer(int &y) : x(y) {}
    int getT() { return x; }
};

int main()
{
    int w = 40;
    Pointer test(w);
    std::cout << test.getT() << ' ' << w;
}

¿Cuál es el significado de la declaración int &x en la definición de la clase? Entiendo que int &y pasado como parámetro para el constructor es el valor pasado por referencia, pero ¿qué ocurre con int &x, ya que este tipo de declaración me muestra un error dentro de la función main()?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La declaración “int &x” en la definición de la clase es una referencia a una variable entera. Cuando se construye la clase Pointer, toma una referencia a una variable entera como parámetro y esa referencia se almacena como la variable miembro privada x.

    En la función main(), el código “&test” intenta imprimir la dirección de memoria del objeto Pointer, lo cual no es compatible con el compilador. La forma correcta de imprimir el valor de x almacenado en el objeto Pointer sería “std::cout << test.getT() << ‘ ‘ << &w;”.

Comments are closed.