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.

Asigne un valor predeterminado al constructor por defecto de Cpp/C++.

Esto parece una pregunta muy fácil pero no puedo encontrar una solución funcional (quizás es el resto del código también).
Entonces, básicamente, ¿cómo asignar un valor a un objeto creado con el constructor predeterminado, cuando el constructor personalizado tiene esa variable como parámetro? (espero que esto sea comprensible)

Tal vez más claro:
El siguiente código solo funciona si escribo foo ex2 (2) en lugar de foo ex2 () dentro de la función principal. Entonces, ¿cómo asigno un valor predeterminado a x si el objeto se crea con el constructor predeterminado?
“`
clase foo {

público:
int y;
int x;
estático int contador;

foo() {
y = contador;
contador ++;
x = 1;
};

foo(int xi) {
y = contador;
contador ++;
x = xi;
};

};

int foo :: contador = 0;

principal

foo ex1 (1);
foo ex2 ();

std :: cout << ex1.y << “\t” << ex1.x << “\n”;
std :: cout << ex2.y << “\t” << ex2.x << “\n”;
std :: cin.get ();

};

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para asignar un valor predeterminado a x cuando se utiliza el constructor predeterminado, puede modificar el constructor predeterminado para que tome un argumento opcional con un valor predeterminado. De esta manera, si no se proporciona el argumento al crear el objeto, se utilizará el valor predeterminado. Aquí hay un ejemplo:

    “`c ++
    class foo {
    public:
        int y;
        int x;
        int contador;

        foo(int xi = 1) { // usa 1 como valor predeterminado para x
            y = contador;
            contador++;
            x = xi;
        };
    };

    int foo :: contador = 0;

    int main () {
        foo ex1 (1);
        foo ex2; // se utiliza el constructor predeterminado, x se asignará el valor predeterminado de 1

        std :: cout << ex1.y << “\ t” << ex1.x << “\ n”;
        std :: cout << ex2.y << “\ t” << ex2.x << “\ n”;
        std :: cin.get ();
    };
    “`

    En este ejemplo, el constructor de la clase foo toma un parámetro opcional xi con un valor predeterminado de 1. Si se crea un objeto con este constructor y no se proporciona ningún valor para xi, se utilizará el valor predeterminado de 1. De esta manera, se puede utilizar el constructor predeterminado para asignar un valor predeterminado a x.

Comments are closed.