arrow operator c++

C++
// C program to show Arrow operator 
// used in structure 
  
#include <stdio.h> 
#include <stdlib.h> 
  
// Creating the structure 
struct student { 
    char name[80]; 
    int age; 
    float percentage; 
}; 
  
// Creating the structure object 
struct student* emp = NULL; 
  
// Driver code 
int main() 
{ 
    // Assigning memory to struct variable emp 
    emp = (struct student*) 
        malloc(sizeof(struct student)); 
  
    // Assigning value to age variable 
    // of emp using arrow operator 
    emp->age = 18; 
  
    // Printing the assigned value to the variable 
    printf("%d", emp->age); 
  
    return 0; 
} 
(pointer_name)->(variable_name)/* 
 the arrow operator is used for accessing members (fields or methods)
 of a class or struct
 
 it dereferences the type, and then performs an element selection (dot) operation
*/

#include <iostream>
using std::cout;

class Entity {
public:
	const char* name = nullptr;
private:
	int x, y;
public:
	Entity(int x, int y, const char* name)
		: x(x), y(y), name(name) {
		printEntityPosition(this); // "this" just means a pointer to the current Entity
	}

	int getX() { return x; }
	int getY() { return y; }

	friend void printEntityPosition(Entity* e);

};

// accessing methods using arrow
void printEntityPosition(Entity* e) {
	cout << "Position: " << e->getX() << ", " << e->getY() << "\n";
}

int main() {
	/* ----- ARROW ----- */

	Entity* pointer = new Entity(1, 1, "Fred");
	//printEntityPosition(pointer); redacted for redundancy (say that 5 times fast)
	
  	cout << (*pointer).name << "\n"; // behind the scenes
	cout << pointer->name << "\n"; // print the name (with an arrow)

	/* ----- NOT ARROW ----- */

	Entity not_a_pointer(2, 2, "Derf");
	//printEntityPosition(¬_a_pointer); & to convert to pointer

	cout << not_a_pointer.name << "\n"; // print the name (with a dot)

	/* ----- LITERALLY NEITHER ----- */

	std::cin.get(); // wait for input
	return 0; // exit program
}


Source

Also in C++: