Inheritance vs Polymorphism & Vectors (Basics)

  • Thread starter Thread starter AKJ1
  • Start date Start date
  • Tags Tags
    Basics Vectors
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 2K views
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   Reactions: 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.