Easy C++


C++ Tutorial - Lesson 17: Classes, Members and Methods


by John Kopp

Support this site at no cost to you

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 before proceeding.

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.

int x;

Declares x to be a variable of type int.

Car impala;

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.

Previous Page       Next Page