|

You
make a new type by declaring a class. A class is
just a collection of variables—often of different
types—combined with a set of related functions.
One
way to think about a car is as a collection of wheels,
doors, seats, windows, and so forth. Another way
is to think about what a car can do: It can move,
speed up, slow down, stop, park, and so on. A class
enables you to encapsulate, or bundle, these various
parts and various functions into one collection,
which is called an object.
Encapsulating
everything you know about a car into one class has
a number of advantages for a programmer. Everything
is in one place, which makes it easy to refer to,
copy, and manipulate the data. Likewise, clients
of your class—that is, the parts of the program
that use your class—can use your object without
worry about what is in it or how it works.
A
class can consist of any combination of the variable
types and also other class types. The variables
in the class are referred to as the member variables
or data members. A Car class might have member variables
representing the seats, radio type, tires, and so
forth.
New Term: Member variables ,
also known as data members , are the variables
in your class. Member variables are part of your
class, just like the wheels and engine are part
of your car.
The
functions in the class typically manipulate the
member variables. They are referred to as member
functions or methods of the class. Methods of the
Car class might include Start() and Brake(). A Cat
class might have data members that represent age
and weight; its methods might include Sleep(), Meow(),
and ChaseMice().
New Term: Member functions ,
also known as methods , are the functions
in your class. Member functions are as much a part
of your class as the member variables. They determine
what the objects of your class can do.
Declaring
a Class
To
declare a class, use the class keyword followed
by an opening brace, and then list the data members
and methods of that class. End the declaration with
a closing brace and a semicolon. Here’s the declaration
of a class called Cat:
class
Cat
{
unsigned
int itsAge;
unsigned
int itsWeight;
Meow();
};
Declaring
this class doesn’t allocate memory for a Cat. It
just tells the compiler what a Cat is, what data
it contains (itsAge and itsWeight), and what it
can do (Meow()). It also tells the compiler how
big a Cat is—that is, how much room the compiler
must set aside for each Cat that you create. In
this example, if an integer is two bytes, a Cat
is only four bytes big: itsAge is two bytes, and
itsWeight is another two bytes. Meow() takes up
no room, because no storage space is set aside for
member functions (methods).
A
Word on Naming Conventions
As
a programmer, you must name all your member variables,
member functions, and classes. As you learned in
Unit 3, "Variables and Constants," these should
be easily understood and meaningful names. Cat,
Rectangle, and Employee are good class names. Meow(),
ChaseMice(), and StopEngine() are good function
names, because they tell you what the functions
do. Many programmers name the member variables with
the prefix its, as in itsAge, itsWeight, and itsSpeed.
This helps to distinguish member variables from
nonmember variables.
C++
is case-sensitive, and all class names should follow
the same pattern. That way you never have to check
how to spell your class name; was it Rectangle,
rectangle, or RECTANGLE? Some programmers like to
prefix every class name with a particular letter—for
example, cCat or cPerson—whereas others put the
name in all uppercase or all lowercase. The convention
that I use is to name all classes with initial-capitalization,
as in Cat and Person.
Similarly,
many programmers begin all functions with capital
letters and all variables with lowercase. Words
are usually separated with an underbar—as in Chase_Mice—or
by capitalizing each word—for example, ChaseMice
or DrawCircle.
The
important idea is that you should pick one style
and stay with it through each program. Over time,
your style will evolve to include not only naming
conventions, but also indentation, alignment of
braces, and commenting style.
NOTE: It’s common for development companies
to have house standards for many style issues. This
ensures that all developers can easily read one
another’s code.
|