Why do use pointers in C++ polymorphism? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

Why do use pointers in C++ polymorphism?

I hate pointers, they're everywhere. Why in C++ polymorphism do we need to use pointers. So: class Enemy{ public: void attack(){ } }; class Ninja: public Enemy{ public: void attack(){ } } Ninja n; Enemy *enemy1 = &n; // I don't get this! Why do we need pointers at the end?! I don't get this at all. What does assigning object-pointer-thing "*enemy1" to address of object "n" even do? Is it necessary? What on earth does it do?!

25th Jun 2020, 10:45 AM
Clueless Coder
Clueless Coder - avatar
7 Answers
+ 1
Da2 I know what & is. It's a memory address. Throughout the entire course I have wondered what the point of pointers are. I still don't get it.
25th Jun 2020, 8:06 PM
Clueless Coder
Clueless Coder - avatar
+ 1
Da2 Ok. I saw something in Stackoverflow. The best answer was along the lines of: class Base {} class Derived: Public base {} Derived x; Base y = x; //is equivalent to: Derived x; Base *y = &x; Is this somewhat correct would you say, this is the only example I've actually understood.
25th Jun 2020, 8:13 PM
Clueless Coder
Clueless Coder - avatar
+ 1
Hello! First of all polymorphism requires a pointer of mother class type to work because this is how it is designed, essentially you use different types (derived) trough a single type (base) , then it behaves accordingly to the derived class . What's the point? OOP. Polymorphism is a typical OOP feature and in C++ you use pointers, that's all. The example provided in the lessons is just as simple as it can for the purpose of showing how it works. In real life it is not used so much because it is really hard to handle. Last.. Base y = x; is not equivalent, is a copy constructor call. It all depends on how you implemented the copy constructor for class Base
25th Jun 2020, 10:41 PM
AZTECCO
AZTECCO - avatar
0
Pointers is use primarily to pass parameters. Understand memory address & you will begin to make some sense of pointers
25th Jun 2020, 11:40 AM
Da2
Da2 - avatar
0
A memory address contains a value (data). So if I need to use the same data with another function, I need to know the address😕
25th Jun 2020, 8:10 PM
Da2
Da2 - avatar
0
In a real world example, your house has an address which acts as a pointer so that other people will know how to get to you.
25th Jun 2020, 8:14 PM
Da2
Da2 - avatar
0
Forget about coding, focus on the concept
25th Jun 2020, 8:15 PM
Da2
Da2 - avatar