Can I get some help with explanation of the following code?
#include class Vector { private: double∗ elem; // pointer to the el
Maybe it's the new C++11 initialisation-lists that are confusing you, you now can initialise a variable with curly-braces {}. For example:
{}
int i{42}; std::vector v{1, 2, 3, 4};
everything else in your code looks pretty standard pre-C++11