c++ ->
struct car {
int year
int vin;
}
struct car myCar;
p_myCar = &myCar;
myCar.year = 1995;
// '->' allows you to use the '.' with pointers
p_myCar->vin = 1234567;
c++ ->
struct car {
int year
int vin;
}
struct car myCar;
p_myCar = &myCar;
myCar.year = 1995;
// '->' allows you to use the '.' with pointers
p_myCar->vin = 1234567;
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
}
Copyright © 2021 Codeinu
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems resetting your password contact us