210 likes | 605 Views
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 About C++ Created by Bjarne Stroustrup at Bell Lab about 1985
E N D
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
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
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
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
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
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
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)
Header file specification End of function body C++ entrance, function prototype Data Declaration Location of header files Beginning of function body Keyword to define constant Input operators string I/O objects Assignment with expression Output operators system-defined id Function body, C++ statements Statement terminator A simple C++ program: cirArea.cpp #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; }
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
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
The general process cycle of a C++ program Malik’s slide: 2:42
Usual style of a function For each function: • Function prototype (header)typeOfFunctionfunctionID (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
Quick revision and sample statements • Malik 2, Exercises: 7-9, 10.a-f
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
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;
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;
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”;
Sample coding on exercises • Malik: 2 Exercise 18a, , Programming Exercises: 8,11
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
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
Reference • Malik: 1.9, 2, 13.3 • An introduction to C++ for newbies: http://www.cprogramming.com/begin.html -- END --