Inheritance vs Polymorphism & Vectors (Basics)

  • Thread starter Thread starter AKJ1
  • Start date Start date
  • Tags Tags
    Basics Vectors
AI Thread Summary
The discussion focuses on understanding the concepts of inheritance and polymorphism in C++ through specific code examples. The first code snippet is identified as an example of inheritance due to the use of a virtual method in the Shape class. The second question contrasts an array of integers, defined as "int list[10]", with a vector of integers, "std::vector<int> list(10)", highlighting that the array stores data sequentially and is more memory efficient, while the vector offers additional functionality. Participants share insights on the advantages of both approaches, with some preferring the simplicity of arrays over vectors. Overall, the conversation aims to clarify these foundational programming concepts for self-learners.
AKJ1
Messages
43
Reaction score
0

Homework Statement


[/B]
Hi all, these were two even numbered exercises in my C++ textbook. I am self teaching the language so I am trying to get some of the basics down.

1. Would the following snippet of code best be described as an example of Polymorphism or Inheritance?

class Shape { public: void draw();
protected:
Shape();
virtual void drawPoints() const = 0;
private:
std::vector points;
};

2. What is the difference between

int list[10];
std::vector<int> list(10);

The Attempt at a Solution


[/B]
My answer to the first question is inheritance, but if I am incorrect please let me know, thank you.

The second question I am sort of lost on, the second piece of code creates a vector of 10 ints called list. What does "int list[10]" do?

Thank you!
 
Last edited:
Physics news on Phys.org
int list[10];

is an array of 10 integers. The data is stored sequentially in memory in the most efficient manner.

whereas the other is using a class std:vector to manage a list of 10 integers. There is extra code
involved and extra capability provided by using the std:vector scheme.

Here's a discussion on why some programmers prefer the int list[10] approach over the std:vector
approach:

http://lemire.me/blog/2012/06/20/do-not-waste-time-with-stl-vectors/

In the first example, I guess the virtual method means that the Shape class gets drawPoints(0 from a parent class and hence is an example of inheritance.

Here's some discussion on virtual methods:

https://en.wikipedia.org/wiki/Virtual_function
 
  • Like
Likes AKJ1
jedishrfu said:
int list[10];

is an array of 10 integers. The data is stored sequentially in memory in the most efficient manner.

whereas the other is using a class std:vector to manage a list of 10 integers. There is extra code
involved and extra capability provided by using the std:vector scheme.

Here's a discussion on why some programmers prefer the int list[10] approach over the std:vector
approach:

http://lemire.me/blog/2012/06/20/do-not-waste-time-with-stl-vectors/

In the first example, I guess the virtual method means that the Shape class gets drawPoints(0 from a parent class and hence is an example of inheritance.

Here's some discussion on virtual methods:

https://en.wikipedia.org/wiki/Virtual_function

Fantastic. Thank you for the response and additional discussion links.
 

Similar threads

Replies
2
Views
1K
Replies
2
Views
2K
Replies
17
Views
2K
Replies
2
Views
1K
Replies
5
Views
2K
Replies
9
Views
2K
Replies
1
Views
2K
Replies
36
Views
3K
Replies
36
Views
3K
Back
Top