No tienes acceso a esta clase

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

Encapsulación

10/16
Recursos

Aportes 7

Preguntas 3

Ordenar por:

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

Para modificar o acceder al estado de los miembros (variables) privados, lo podemos hacer por medio de metodos (funciones) publicos, como serian los Getters y Setters de Java.

...
void setNombre(string nombre) {
	this->nombre = nombre;
}

string getNombre(void) {
	return nombre;
}
...
Persona *p = new Persona("Diana", 26);
cout << p->getNombre() << endl;

$ ./main
Diana

Crear un constructor en C++, existen 2 formas que si bien hacen lo mismo tienen diferente sintaxis.

Les dejo el codigó:

#include <iostream>
#include <string>

using namespace std;

class Person {
private:
  string name;
  int age;

public:
  Person(string n, int a) {
    name = n;
    age = a;
  }
  ~Person() { cout << "Destruction" << endl; }
  void say_hi() { cout << name << endl; }
};

int main() {
  Person p = Person("Zero", 14);
  p.say_hi();
}

les dejo algo que hice similar:

#include<iostream>
#include<string>
/*
ejemplo de encapsulacion automoviles
Dan Gallegos
*/
using namespace std;
class Automovil{
private:
string marca;
int ano;
public:
Automovil(string m,int a):marca(m),ano(a){}
~Automovil(){
cout<<“destructor”<<endl;
}
void prender(){
cout<<marca<<endl;
}
};
int main(){
Automovil *a=new Automovil(“nissan”,2010);
Automovil *a2=new Automovil(“toyota”,2019);

a->prender();
a2->prender();

}

El encapsulamiento es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos

Les dejo my code.

#include <iostream>
#include <string>

using namespace std;

class Persona {
private:
  string nombre;
  int edad;

public:
  Persona(string n, int e) {
    nombre = n;
    edad = e;
  }
  ~Persona() {
   cout<<"Destruction"<<endl; 
   			}
  void saludar() {
   cout <<nombre<<endl;
    }
};

int main() {
  Persona p= Persona("Sebas", 21);
  p.saludar();
}

Falto mencionar, que cuando el constructor de una clase se declara para recibir solamente un parametro, es recomendable declararlo como “explicit” para hacer que el constructor reciba solamente ese parametro con el tipo de datos definido y así evitar errores a la hora de pasar argumentos al constructor fuera de la clase, que no sean validos o no sean los esperados.