Rossella Lau Lecture 1, DCO10105, Semester B,2004-5 DCO10105 Object-Oriented Programming and Design ...

Preview:

Citation preview

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

DCO10105 Object-Oriented Programming and Design

Lecture 1: Introduction

What this course is about: C++ programming Object-Oriented programming concepts Good Programming practice Program design

-- By Rossella Lau

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

About C++

Created by Bjarne Stroustrup at Bell Lab about 1985

Maintains C (early 1980) with simpler usages

O-O language

Powerful, flexible

With a Standard Library and a Standard Template Library

Reference: An introduction to C++ for newbies: http://www.cprogramming.com/begin.html

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

ANSI/ISO Standard C++

C++ programs are not always portable

September 1998, IS14882 has been approved as an ANS

most of today’s compilers comply with this standard GNU C++ compilers

Visual C++

DevC++ The tool we will use in this course

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

O-O programming concepts

Usually three basic parts:

Class construction data encapsulation

Inheritance parent-child relationship – base class and sub-class sub-class inherits everything from the parent class software reuse, encapsulation

Polymorphism A sub-class can pretend its base classes A class allows for applying different data types through template An expression denotes different operations through dynamic binding Shorter/Less programming

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Good programming practice

Documentation Comments Naming identifiers White space: indentation, blank lines, spaces

Coding convention Usually there are rules, in addition to a programming language’s

syntax, to be followed in order to make people in the same organization understand each other better

• Coding style

• Statement usages

Reference: Guide lines for programming styles in this course

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Good practice I: Naming Convention

Naming in a programming language is always Program id, method id, variables, constants

To name an identifier, one should observe the rules in C++; or the id cannot get past the compiler, otherwise

To follow a convention means even if an id’s name can pass the compiler, it should conform to some additional rules

In this course, the Java naming convention should be followed

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Program Design

Class design with UML (Unified Modeling Language) Diagram

Object-Oriented Design (OOD) Encapsulation: combine data and operations in a unit Inheritance: create new objects from existing objects Polymorphism: same expression denotes different operations

Program design using structured programming approach Top-down approach with step-wise refinement

Design methods with C++ features: const, &(reference)

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

#include <iostream>using namespace std;int main() { float area; int r; float const PI = 3.14; cerr << "Please enter radius in whole number:\n"; cin >> r; area = PI * r * r; cout << "The radius you provided was " << r << " feet and the area is about " << area << " sq feet" << endl; return EXIT_SUCCESS;}

A simple C++ program: cirArea.cpp

Header file specificationLocation of header files

C++ entrance, function prototypeBeginning of function body

Function body, C++ statementsEnd of function body

Data Declaration

I/O objects

Output operators

Input operators

Keyword to define constant

Assignment with expressionstring

Statement terminatorsystem-defined id

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

C++ program style

For non-class programs: Header file specification

Coming with the standard library (SL) or the standard template library (STL)

Whenever a function from the SL or the STL is used, its respective header files should be specified through this “Preprocessor directives”#include <headerName>

Location of header files E.g., using namespace std; std is ANSI/ISO standard where objects of iostream are located

A collection of functions (or methods) main() is a necessary entrance point in a C++ program

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Preprocessor directives

Whenever a function from the SL or the STL is used, its respective header files should be specified through “Preprocessor directives”#include <headerName>

It is not a C++ statement

It is processed through the “preprocessor” before the compiler has taken place

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

The general process cycle of a C++ program

Malik’s slide: 2:42

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Usual style of a function

For each function:

Function prototype (header)typeOfFunction functionID (parameterList)

Function body: { C++ statements } Data declaration statements Executable statements Syntax of basic statements are the same as in Java;

Reference: Malik’s slide 2:5-30, 36-38, 43-47

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Quick revision and sample statements

Malik 2, Exercises: 7-9, 10.a-f

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Basic C++ data types

Integral char, short, int, long, bool unsigned char, unsigned short, unsigned int, unsigned long

Floating Point float, double, long couble

Enumeration user-defined data types

Note that string is not a basic data type in C++ but a class in the C++ STL

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Basic C++ Input statements

E.g., cin >> r; cin is a predefined (in iostream) object which refers to

input from keyboard >> the input operator or extraction operator r is the variable to store the values input from cin

• If r is a basic C++ data type variable, data conversion is not necessary as in Java

Multiple extraction operators on a line E.g., cin >> length >> width;

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Basic C++ Output statement E.g., cout << r;

cout is a predefined object which refers to output to screen There is another predefined output object cerr which also

direct output to screen; it is a good practice to direct user prompt and error messages to cerr and normal output to cout

<< is the output operator or insertion opertor Variable or literal value can be easily printed

Multiple insertion operators on a line E.g., cout << “The length is “ << length << endl;

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Output with new line

endl is a predeined id and its value is ‘\n’

Usually, endl is used when the last insertion operand is an

identifier; ‘\n’ is placed at the end of a literal string if the string is the

last insertion operand, e.g.,cout << length << “is input from the user\n”;

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Sample coding on exercises

Malik: 2 Exercise 18a, , Programming Exercises: 8,11

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Some major differences from Java

An independent executable module

Not necessary to be a class inside a program

Using template much more than inheritance and dynamic binding

An object can be referenced in three forms: a real object, a pointer, and a reference.

Does not have a “standard web site” for on-line documentation

Some on-line sites can be found through the Helpful links under the course page

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Summary

This course focus on C++ programming with advanced concepts in O-O design

C++ basic syntax is the same as Java except for program style and, of course, usage of functions in its own libraries

Before a C++ compiler is taken place, pre-process must be performed first

C++ input statement is easier than Java as it does not need numeric data conversion

Rossella Lau Lecture 1, DCO10105, Semester B,2004-5

Reference

Malik: 1.9, 2, 13.3

An introduction to C++ for newbies: http://www.cprogramming.com/begin.html

-- END --

Recommended