No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

This

11/16
Recursos

Aportes 12

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Diferencias entre:

Persona &SetNombre(string nombre)
Persona SetNombre(string nombre)

Ambos son válidos.
Con Persona &SetNombre retornas la referencia del mismo objeto.
Con Persona SetNombre retornas un nuevo objeto realizando una copia del objeto actual

Wow, Lo que realiza al final es impresionante, basicamente cambia el valor y a la vez retorna el objeto al que le esta cambiando el valor, por eso usa el punto, porque si recordamos para acceder a las metodos y atributos de un objeto utilizamos un punto, Wow Diana no puedo creer que este comprendiendo esto, es una locura, eres excelente !!!

Existe otra forma alternativa al this para el constructor, cuando el nombre del parámetro del constructor es el mismo que el del miembro de datos.

A esta forma se le llama “Constructor member initializer lists”.

  • La edad dentro del paréntesis es la que recibimos como parámetro.
  • La edad fuera del paréntesis es this->edad.
// Consructor (Initializer List)
Persona::Persona(string nombre, int edad) : edad(edad), nombre(nombre) {}

¿Es recomendable esta forma?

Esto es similar a los metodos Getter y Setter que se usan habitualmente en Java ☕

Podemos notar cómo para acceder a establecerNombrey establecerEdad en la misma línea:

p->establecerNombre("Ximena").establecerEdad(26).establecerNombre("Diana");

al inicio se usa flecha para acceder a un método, y en los siguientes se utiliza punto (y no flecha todo el tiempo).

OHHHHHHHHHH, ¡¡¡Ahora entiendo!!!
En clases anteriores tenia la duda del por qué no me dejaba tener nombre = nombre en el constructor. Ahora lo tengo claro ❤️

en visual estudio , pulsas ctrl + r dos veses, para renombras variables o nombres sin tener que rescribirlas en todo lado

Declaracion de función en C++ que retorna un puntero.

Cuando se llama al constructor de una clase, se esta creando un nuevo objeto en memoria (una nueva instancia de la clase) y el constructor sirve para inicializar las variables miembro de esa instancia.
This es un puntero a la dirección de memoria donde esta alojada la propia instancia de la clase, por eso se debe utilizar el operador flecha -> y no el operador punto .

¿Qué es “::”?..Se llama Operador de resolución de alcance y se usa para dar a un elemento como una clase o función un nombre único y totalmente calificado en todo el programa.

En las clases anteriores se me ocurrió una idea, que se pudiera desde un Void ingresar información a las variables o actualizarlas, total que no pude hacerlo y no sabía como buscar esta idea por internet, ahora con el puntero This, pude hacerlo.

Se los comparto y si tienen alguna corrección que hacerme me gustaría leerlos, soy muy nuevo en esto de la programación, por lo que sospecho que hay aberraciones en mi código jeje.

#include <iostream>
#include <string>
using  namespace std;

class persona {
private:
    string nombre;
    int edad;
    
public:
    //aquí se establece el constructor y destructor//
    persona (string nombre, int edad) {
        this-> nombre = nombre;
        this-> edad = edad;
    }
    
    ~persona () {}

    //Aquí se aplica el puntero THIS, para autorefenciar y actualizar datos//    
    persona &estnombre (string nombre) {
        this->nombre = nombre;
        cout << "Cuál es su nombre? ";
        cin >> this->nombre;
    
        return *this;
    }
    //el "&" es para indicar que la variable almacena una dirección y "*" antes del return, para que retorne el valor que almacena esa dirección.//
    persona &estedad (int edad) {
        this->edad = edad;
        cout << "Cuál es su edad? ";
        cin >> this->edad;
        return *this;
    }
    
    void saludar () {
        cout << "Hola mi nombre es: " << nombre << ", mi edad es " << edad << endl;
    }
};

int main () {
    persona* p = new persona("Miguel",48);
    
    //Aquí se actualiza los datos, invocando al método PERSONA//
    p->estnombre("");
    p->estedad(0);
    
    //Y luego se invoca al void salud//
    p->saludar();
    delete p;
}

No sé si sea yo el único, pero creo que este curso no es muy bueno, realmente da por hecho sabes muchas cosas, creo más bien es para personas que ya saben programar y quieren aprender un lenguaje nuevo.
Cabe destecar que llevo la cronología de los cursos y me pierdo cañón, creo los programadores dan por hecho que ya todos saben lo que saben ellos, a diferencia de los cursos de otras áreas.