arrow operator c++
/* 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 }