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.