Book Image

The C++ Workshop

By : Dale Green, Kurt Guntheroth, Shaun Ross Mitchell
Book Image

The C++ Workshop

By: Dale Green, Kurt Guntheroth, Shaun Ross Mitchell

Overview of this book

C++ is the backbone of many games, GUI-based applications, and operating systems. Learning C++ effectively is more than a matter of simply reading through theory, as the real challenge is understanding the fundamentals in depth and being able to use them in the real world. If you're looking to learn C++ programming efficiently, this Workshop is a comprehensive guide that covers all the core features of C++ and how to apply them. It will help you take the next big step toward writing efficient, reliable C++ programs. The C++ Workshop begins by explaining the basic structure of a C++ application, showing you how to write and run your first program to understand data types, operators, variables and the flow of control structures. You'll also see how to make smarter decisions when it comes to using storage space by declaring dynamic variables during program runtime. Moving ahead, you'll use object-oriented programming (OOP) techniques such as inheritance, polymorphism, and class hierarchies to make your code structure organized and efficient. Finally, you'll use the C++ standard library?s built-in functions and templates to speed up different programming tasks. By the end of this C++ book, you will have the knowledge and skills to confidently tackle your own ambitious projects and advance your career as a C++ developer.
Table of Contents (15 chapters)

Return Value or Reference

Deciding how the value from a getter should be returned is important and requires some knowledge about the options available. In C++, we can return variables by value, by pointer, and by reference along with their const counterparts, which we will discuss soon; however, we won't cover pointers in this chapter. The choice of how to return a variable largely depends on its use case, and this part of the chapter will cover this in the context of our Track class, and specifically, how it applies to our getters and setters.

Return by Value

Look at the following getLength method from the Track class:

    float getLength() { return m_lengthInSeconds; }

This is returning by value. In other words, this method returns a copy of the value of m_lengthInSeconds. If this value is assigned to another variable, then any modifications to m_lengthInSeconds will not be reflected in the new variable (and vice versa) since it was...