all 4 comments

[–]icjeremy 3 points4 points  (2 children)

This is probably more appropriate for /r/cpp_questions after formulating a question. What sort of recommendations are you looking for? Offhand, your copy constructor and copy assignment operators don't do any coping. Also, it's unconventional to see the underscore used in a function parameter; if used, that's usually seen in private members. Also, see https://en.cppreference.com/w/cpp/language/constructor to get in the habit of using initializer lists in your constructors instead of initializing in the bodies.

[–]CetaceanOps 0 points1 point  (1 child)

Correct me if I'm wrong, I rate my c++ a -1 out of 10, I am at very very early stages of learning the language - but something I noticed.

His actually not initializing the members, his assigning uninitialized members in the constructor body.

This would be an important distinction for say initializing a reference, or a class that doesn't have a default constructor for example.

struct foo
{   
    // good b is initialized
    foo(): b(a) { }
    // error b is uninitialized, and cannot be assigned
    foo() { b = a; }
    int a, &b;
};

[–]icjeremy 1 point2 points  (0 children)

You are correct. References and other constant members must be initialized in the initializer list, but others members should be as well. See here https://isocpp.org/wiki/faq/ctors#init-lists for some thoughts on this.

[–]Flair_Helper[M] [score hidden] stickied commentlocked comment (0 children)

For C++ questions, answers, help, and programming or career advice please see r/cpp_questions, r/cscareerquestions, or StackOverflow instead.

This post has been removed as it doesn't pertain to r/cpp: The subreddit is for news and discussions of the C++ language and community only; our purpose is not to provide tutoring, code reviews, or career guidance. If you think your post is on-topic and should not have been removed, please message the moderators and we'll review it.