Download presentation
Presentation is loading. Please wait.
Published byCurtis Murphy Modified over 9 years ago
2
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
3
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 http://www.cprogramming.com/begin.html
4
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
5
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
6
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
7
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
8
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)
9
Rossella Lau Lecture 1, DCO10105, Semester B,2004-5 #include 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 specification Location of header files C++ entrance, function prototype Beginning of function body Function body, C++ statements End of function body Data Declaration I/O objects Output operators Input operators Keyword to define constant Assignment with expression string Statement terminator system-defined id
10
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 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
11
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 It is not a C++ statement It is processed through the “preprocessor” before the compiler has taken place
12
Rossella Lau Lecture 1, DCO10105, Semester B,2004-5 The general process cycle of a C++ program Malik’s slide: 2:42
13
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
14
Rossella Lau Lecture 1, DCO10105, Semester B,2004-5 Quick revision and sample statements Malik 2, Exercises: 7-9, 10.a-f
15
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
16
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;
17
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;
18
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”;
19
Rossella Lau Lecture 1, DCO10105, Semester B,2004-5 Sample coding on exercises Malik: 2 Exercise 18a,, Programming Exercises: 8,11
20
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
21
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
22
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 --
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.