Flecha operador de acceso como miembro de la clase de operador en C ++

aprender: Cómo utilizar Flecha del operador en lugar de acceso del operador miembro de clase en C ++ lenguaje de programación , cómo los miembros de acceso de una clase a través de puntero de objeto en C ++?

Anteriormente, hemos hablado acerca de Access miembro de la clase de operador en C ++, que se utiliza para acceder a los miembros públicos de una clase.

el acceso a miembros públicos de una clase, utilizamos object_name.member_name .

Miembros de la Clase Accediendo con puntero a un objeto

If usted tiene un puntero a un objeto y desea tener acceso a los miembros de la clase, se puede acceder a ellos mediante el uso de la combinación de dos operadores asterisco (*) y Dot ( .) operador .

Sintaxis:

(*object_pointer_name).member_name;

Considere la declaración de la clase dada

class sample
{
private:
int a;
public:
int b;
void init(int a)
{this->a = a;}
void display()
{cout<<"a: "<<a<<endl;}
};

Considere el main (), aquí estamos accediendo a la función de miembro mediante el uso de combinación de * e. Operadores: – (.)

int main()
{
//pointer to an object declaration
sample *sam = new sample();
//value assignment to a and back
(*sam).init(100);
(*sam).b=200;
//printing the values
(*sam).display();
cout<<"b: "<<(*sam).b<<endl;
return 0;
}

Flecha operador (>) en lugar del asterisco (*) y el operador punto

Podemos utilizar Flecha operador (->) a miembros de la clase de acceso en lugar de utilizar la combinación de dos operadores del asterisco (* ) y punto (.) del operador, el operador de flecha en también conocido como “El acceso del operador miembro de la clase” en C ++ lenguaje de programación.

Sintaxis:

object_pointer_name -> member_name;

Considere la (), aquí estamos accediendo a los miembros que usan Flecha operador

int main()
{
//pointer to an object declaration
sample *sam = new sample();
//value assignment to a and back
sam->init(100);
sam->b=200;
//printing the values
sam->display();
cout<<"b: "<<sam->b<<endl;
return 0;
}

Aquí está el programa completo

#include <iostream>
using namespace std;
class sample
{
private:
int a;
public:
int b;
void init(int a)
{this->a = a;}
void display()
{cout<<"a: "<<a<<endl;}
};
int main()
{
//pointer to an object declaration
sample *sam = new sample();
cout<<"Using * and . Operatorsn";
//value assignment to a and back
(*sam).init(100);
(*sam).b=200;
//printing the values
(*sam).display();
cout<<"b: "<<(*sam).b<<endl;
cout<<"Using Arrow Operator (->)n";
//value assignment to a and back
sam->init(100);
sam->b=200;
//printing the values
sam->display();
cout<<"b: "<<sam->b<<endl;
return 0;
}

salida

Using * and . Operators 
a: 100
b: 200
Using Arrow Operator (->)
a: 100
b: 200


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *