Welcome to EasyCPlusPlus.com's free tutorial on C++ programming. This lesson is the first of several that will
teach all you need to know to define and use classes and objects in C++. Classes and objects have been seen in earlier lessons
and were introduced in lesson 9, Introduction to Classes. You may wish to review that lesson
The use of objects in C++ defines the way programs are designed and written. Classes are a software construct that can be used to emulate a real
world object. Any real world object can be defined by its attributes and by its actions. For instance, a
cat has attributes such as its age, weight, and color. It also has a set of actions that it can perform such
as sleep, eat and complain (meow). The class mechanism in C++ provides a way to create "cats" that we can
use in our program. Obviously, no software construct can perfectly emulate a real object, but a goal in
designing classes is to have all the relevant attributes and abilities encapsulated by the class. This way, objects
of a class are easily created and used. In essence, a ready-made cat is also available to fulfill any requirements.
The difference between a class and
an object can be confusing to
beginners. A class is a programmer defined data
type that encapsulates data and abilities. For instance, a software model of a car, a car "class", might contain data about
the type of car and abilities such as accelerate or decelerate. An object is a particular instance of a class.
This is best understood by an analogy with a built in data type such as int.
Declares x to be a variable of type int.
Declares impala to be an object of class Car.
Only an object represents an actually entity that can be manipulated, initialized or assigned. The class is
a data type.
A number cannot be assigned to "int", since it is a data type and not a variable.
int = 52; // Incorrect
int x; // Correct, declares a variable, x, of built-in type int.
x = 52;
Similarly, the "class" generally should not appear in expressions. The exception to this will be seen later in a
later lesson covering static members and methods
, which are class wide.
Car = impala; // Incorrect
Car myCar; //Correct, defines a object, myCar, of user defined class Car.
myCar = impala; //Assigns impala to myCar.