An Overview of Object-Oriented Programming and C++ 1 An Overview of Object-Oriented Programming and C++ Object-Oriented Programming Using C++ Second Edition
1 Objectives In this chapter, you will learn: About the task of programming About programming universals About procedural programming About object-oriented programming About the C++ programming environment How to create a main() function
1 Objectives In this chapter, you will learn: How to work with variables and the const qualifier How to create comments How to use libraries and preprocessor directives How to use cout and cin How to work with classes
The Task of Programming 1 The Task of Programming Programming a computer involves writing instructions that enable a computer to carry out a single task or a group of tasks A computer programming language requires learning both vocabulary and syntax Programmers use many different programming languages, including BASIC, Pascal, COBOL, RPG, and C++ The rules of any language make up its syntax Machine language is the language that computers can understand; it consists of 1s and 0s
The Task of Programming 1 The Task of Programming A translator (called either a compiler or an interpreter) checks your program for syntax errors A logical error occurs when you use a statement that, although syntactically correct, doesn’t do what you intended You run a program by issuing a command to execute the program statements You test a program by using sample data to determine whether the program results are correct
Programming Universals 1 Programming Universals All programming languages provide methods for directing output to a desired object, such as a monitor screen, printer or file Similarly, all programming languages provide methods for sending input into the computer program so that it can be manipulated In addition, all programming languages provide for naming locations in computer memory These locations commonly are called variables (or attributes)
Programming Universals 1 Programming Universals Ideally, variables have meaningful names, although no programming language actually requires that they meet this standard A variable may have only one value at a time, but it is the ability of memory variables to change in value that makes computers and programming worthwhile In many computer programming languages, including C++, variables must be explicitly declared, or given a data type as well as a name, before they can be used
Programming Universals 1 Programming Universals The type determines what kind of values may be stored in a variable Most computer languages allow at least two types: one for numbers and one for characters Numeric variables hold values like 13 or -6 Character variables hold values like ‘A’ or ‘&’ Many languages include even more specialized types, such as integer (for storing whole numbers) or floating point (for storing numbers with decimal places)
Procedural Programming 1 Procedural Programming Procedural programs consist of a series of steps or procedures that take place one after the other The programmer determines the exact conditions under which a procedure takes place, how often it takes place, and when the program stops Programmers write procedural programs in many programming languages, such as COBOL, BASIC, FORTRAN, and RPG You can also write procedural programs in C++
Early Procedural Programs 1 Early Procedural Programs When programming languages were first used, the programmer’s job was to break a task into small, specific steps Each step was then coded in an appropriate language Three basic control structures are used in procedural programming In the first structure, a sequence, program steps execute one after another, without interruption
Early Procedural Programs 1 Early Procedural Programs Procedural programs also can include a second control structure called selection, which you use to perform different tasks based on a condition
Early Procedural Programs 1 Early Procedural Programs The third control structure used in computer programs is the loop some programmers call the loop structure a repetition or iteration structure
Adding a Loop to a Simple Procedural Billing Program 1 Adding a Loop to a Simple Procedural Billing Program
Modularity and Abstraction 1 Modularity and Abstraction Programming in the oldest procedural languages had two major disadvantages: The programming process involved so much detail that the programmer (and any person reading the program) lost sight of the big picture Similar statements required in various parts of the program had to be rewritten in more than one place Writing programs became easier when programming languages began to allow the programmer to write methods Using methods allows programmers to group statements together into modules or routines
Modularity and Abstraction 1 Modularity and Abstraction
The Procedural Billing Program Containing Several Module Calls 1 The Procedural Billing Program Containing Several Module Calls
1 Encapsulation Modules or procedures act somewhat like relatively autonomous mini-programs Not only can modular routines contain their own sets of instructions, but most programming languages allow them to contain their own variables as well The variables and instructions within a module are hidden and contained —that is encapsulated—which helps to make the module independent of all other modules, and therefore reusable
Object-Oriented Programming 1 Object-Oriented Programming Object-oriented programming requires a different way of thinking and adds several new concepts to programming; You analyze the objects with which you are working— both the attributes of those objects and the tasks that need to be performed with and on those objects You pass messages to objects, requesting the objects to take action The same message works differently when applied to the various objects
Object-Oriented Programming 1 Object-Oriented Programming A method can work appropriately with different types of data it receives, without the need for separate method names Objects can share or inherit traits of previously created objects, thereby reducing the time it takes to create new objects Information hiding is more complete than in procedural programs
Object-Oriented Programming 1 Object-Oriented Programming The basic principles behind using object- oriented programming techniques involve: Objects Classes Inheritance Polymorphism
1 Objects and Classes An object is any thing A class consists of a category of things An object is a specific item that belongs to a class; it is called an instance of a class A class defines the characteristics of its objects and the methods that can be applied to its objects It is conventional, but not required, to begin object names with a lowercase letter, and to begin class names with an uppercase letter
1 Inheritance The concept of using classes provides a useful way to organize objects; it is especially useful because classes are reusable or extensible You can create new classes that extend or are descendants of existing classes The descendent classes can inherit all the attributes of the original (or parent) class, or they can override inappropriate attributes
1 Polymorphism Programming modules might occasionally need to change the way they operate depending on the context Object-oriented programs use polymorphism to carry out the same operation in a manner customized to the object Without polymorphism you would have to use a separate module or method name for a method that multiplies two numbers and one that multiplies three numbers Without polymorphism you would have to create separate module names for a method that cleans a Dish object, one that cleans a Car object, and one that cleans a Baby object
Getting Started in the C++ Programming Environment 1 Getting Started in the C++ Programming Environment Depending on your C++ installation, you can access the compiler by clicking an icon, selecting from a menu, or typing a command The main work area in any C++ programming environment is the editor An editor is a simplified version of a word processor in which you type your program statements, or source code After you enter the source code for a program, you must compile the program
Getting Started in the C++ Programming Environment 1 Getting Started in the C++ Programming Environment When you compile, the code you have written is transformed into machine language—the language that the computer can understand The output from the compilation is object code When a C++ program is compiled, a file is created that has the same filename as the source code, but has the extension .obj A runnable, or executable, program needs the object code as well as code from any outside sources (other files) to which it refers
Getting Started in the C++ Programming Environment 1 Getting Started in the C++ Programming Environment The process of integrating these outside references is called linking An executable file contains the same filename as the source code and the object code, but carries the extension .exe to distinguish it as a program When you compile a C++ program, error messages and/or warnings might appear A C++ program with errors will not execute; you must eliminate all error messages before you can run the program
Creating a main( ) Function 1 Creating a main( ) Function C++ programs consist of modules called functions Every statement within every C++ program is contained in a function Every function consists of two parts: A function header is the initial line of code in a C++ which always has three parts: Return type of the function Name of the function Types and names of any variables enclosed in parentheses, and which the function receives A function body
Creating a main( ) Function 1 Creating a main( ) Function A C++ program may contain many functions, but every C++ program contains at least one function, and that function is called main( ) If the main function does not pass values to other programs or receives values from outside the program, then main( ) receives and returns a void type The body of every function in a C++ program is contained in curly braces, also known as curly brackets
Creating a main( ) Function 1 Creating a main( ) Function Every complete C++ statement ends with a semicolon Often several statements must be grouped together, as when several statements must occur in a loop In such a case, the statements have their own set of opening and closing braces within the main braces, forming a block
Working with Variables 1 Working with Variables In C++, you must name and give a type to variables (sometimes called identifiers) before you can use them Names of C++ variables can include letters, numbers, and underscores, but must begin with a letter or underscore No spaces or other special characters are allowed within a C++ variable name Every programming language contains a few vocabulary words, or keywords, that you need in order to use the language
1 Common C++ Keywords
Working with Variables 1 Working with Variables A C++ keyword cannot be used as a variable name Each named variable must have a type C++ supports three simple types: Integer — Floating point — Character An integer is a whole number, either positive or negative An integer value may be stored in an integer variable declared with the keyword int You can also declare an integer variable using short int and long int
Working with Variables 1 Working with Variables Real or floating-point numbers are numbers that include decimal positions, such as 98.6, 1000.00002, and -3.85 They may be stored in variables with type float, double, and long double Characters may be stored in variables declared with the keyword char A character may hold any single symbol in the ASCII character set Often it contains a letter of the alphabet, but it could include a space, digit, punctuation mark, arithmetic symbol, or other special symbol
Working with Variables 1 Working with Variables In C++, a character value is always expressed in single quotes, such as ‘A’ or ‘&’ To declare a variable, you list its type and its name In addition, a variable declaration is a C++ statement, so it must end with a semicolon If you write a function that contains variables of diverse types, each variable must be declared in a statement of its own If you want to declare two or more variables of the same type, you may declare them in the same statement
Working with Variables 1 Working with Variables Explicitly stating the value of a variable is called assignment, and is achieved with the assignment operator = The variable finalScore is declared and assigned a value at the same time Assigning a value to a variable upon creation is often referred to as initializing the variable
1 The const Qualifier A variable that does not change in a program should not be declared as a variable Instead, it should be a constant The statement const double MINIMUM_WAGE = 5.75; declares a constant named MINIMUM_WAGE that can be used like a variable, but cannot be changed during a program
1 Creating Comments Comments are statements that do not affect the compiling or running of a program Comments are simply explanatory remarks that the programmer includes in a program to clarify what is taking place These remarks are useful to later program users because they might help explain the intent of a particular statement or the purpose of the entire program C++ supports both line comments and block comments
1 Creating Comments A line comment begins with two slashes (//) and continues to the end of the line on which it is placed A block comment begins with a single slash and an asterisk (/*) and ends with an asterisk and a slash (*/); it might be contained on a single line or continued across many lines
Using Libraries and Preprocessor Directives 1 Using Libraries and Preprocessor Directives Header files are files that contain predefined values and routines, such as squrt( ) Their filenames usually end in .h In order for your C++ program to use these predefined routines, you must include a preprocessor directive, a statement that tells the compiler what to do before compiling the program In C++, all preprocessor directives begin with a pound sign (#), which is also called an octothorp The #include preprocessor directive tells the compiler to include a file as part of the finished product
1 C++ Output C++ provides several objects for producing output The simplest object is called cout, pronounced “see out” When contained in a complete C++ program, the statement cout<<“Hi there”; places the phrase “Hi there” on the monitor
1 C++ Output To indicate a newline character, you can use the escape sequence \n Another way to advance output to a new line is to use the end line manipulator endl Inserting endl into the output stream causes a new line plus all waiting output to become visible, a process called flushing the buffer To create a program that declares two variables, assigns values to them, and creates output, perform the steps on pages 21 to 23 of the textbook
Program Listing for Output1.cpp
1 Output of Output1.cpp
1 C++ Input Many programs rely on input from a user These are called interactive programs because the user interacts with the program statements You create prompts by using the cout object; you retrieve user responses by using the cin object The cin (pronounced see in) object fetches values from the keyboard It is used with the extraction operator >> Prior to a cin statement, it is almost always necessary to provide the user with a prompt, or a short explanation of what is expected
1 C++ Input Whitespace consists of any number of spaces, tabs, and Enter characters You will add prompts and interactive input to the Output1.cpp program by following the instructions shown on pages 24 and 25 of the textbook
1 Output of Output2.cpp
C++ Classes and Objects 1 C++ Classes and Objects When you use data types like int, char, and double within a program, you are using the C++ built-in, primitive or scalar data types A major feature of object-oriented languages is the ability to create your own new, complex data types These new types are called classes A class can contain many simpler data types within it, as well as any number of functions The relationship between these components, or fields, is often called a has-a relationship
C++ Classes and Objects 1 C++ Classes and Objects
1 A Complete Class Definition and a main( ) Method that Uses a Class Object
C++ Classes and Objects 1 C++ Classes and Objects You will create a Student class, and then create a program that uses a Student class object using the procedures outlined on pages 27 and 28 of the textbook Creating a class provides a means to group data fields together in a logical way
1 Summary Programming a computer involves learning the syntax of a computer programming language and resolving logical errors All programming languages provide methods for input and output of variable values You declare a variable by providing it with a name and a type Procedural programs consist of a series of steps or procedures that take place one after the other Object-oriented programming adds several new programming concepts including objects, classes, inheritance, and polymorphism
1 Summary You write a C++ program by typing source code into an editor and compiling the program C++ modules are called functions, and each function contains a header and a body C++ variables must be given a type and a name Simple types include integer for whole numbers, double and float for floating-point values, and character for any character Comments are non-executing program statements
1 Summary C++ supports line comments and block comments A preprocessor directive tells the compiler to do something, such as to include a header file, before compiling the program The cout statement (along with an insertion operator) is used to display values When you create a class, you create your own C++ data type, which is a complex type composed of simpler types