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
}
Are there any code examples left?
New code examples in category C++
-
C++ 2023-04-28 17:44:25
-
C++ 2022-03-27 19:20:39 lists occurrences of characters in the string c++
-
C++ 2022-03-27 18:00:14 variabili in c++
-
C++ 2022-03-27 17:10:08 repeat character n times c++
-
C++ 2022-03-27 15:50:07 delete an array c++
-
C++ 2022-03-27 15:40:12 C++ pointer to base class
-
C++ 2022-03-27 12:15:21 find the graph is minimal spanig tree or not
-
C++ 2022-03-27 11:30:15 multi variable assignment cpp
-
C++ 2022-03-27 11:05:17 c++ pi float
-
C++ 2022-03-27 10:20:12 why exceptions can lead to memory leaks