Documente Academic
Documente Profesional
Documente Cultură
Hybrid language
C-like style Object-oriented style Both
2003 Prentice Hall, Inc. All rights reserved.
More understandable, better organized and easier to maintain than procedural programming Favor modularity
Software reuse Libraries MFC (Microsoft Foundation Classes) Rogue Wave
2003 Prentice Hall, Inc. All rights reserved.
Basics of a Typical C++ Environment Phases of C++ Programs: 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute
Editor Disk
Program is created in the editor and stored on disk. Preprocessor program processes the code. Compiler creates object code and stores it on disk. Linker links the object code with the libraries, creates a.out and stores it on disk
Preprocessor
Disk
Compiler
Disk
Linker
Disk
Primary Memory
Loader
Disk
Primary Memory
CPU
. . . . . .
CPU takes each instruction and executes it, possibly storing new data values as the program executes.
cout
Standard output stream Normally computer screen
cerr
Standard error stream Display error messages
General Notes About C++ and This Book Book geared toward novice programmers
Stress programming clarity C and C++ are portable languages
Portability
C and C++ programs can run on many different computers
Compatibility
Many features of current versions of C++ not compatible with older implementations
10
11
Preprocessor directives
Processed by preprocessor before compiling Begin with #
Corresponding right brace } return 0; //ends function body. indicate that program ended successfully Stream insertion Name cout belongs to operator. } // end function main namespace std. Keyword return is one of Welcome to C++! several means to exit function; value 0 indicates program terminated successfully.
1 2 3 4 5 6 7 8 9 10 11 12
// Fig. 1.2: fig01_02.cpp // A first program in C++. Function main #include <iostream>
Single-line comments.
Outline
12
returns an integer value. begins Preprocessor directive to Left brace { function include input/output Statements end with afig01_02.cpp stream begins program execution appears body. Function main (1 of 1) header file <iostream>. exactly once in every C++ semicolon ;. program.. fig01_02.cpp output (1 of 1)
13
Namespace
std:: specifies using name that belongs to namespace std std:: removed through use of using statements
Escape characters
\ Indicates special character output
2003 Prentice Hall, Inc. All rights reserved.
14
\a \\ \"
1 2 3 4 5 6 7 8 9 10 11 12 13
// Fig. 1.4: fig01_04.cpp // Printing a line with multiple statements. #include <iostream> // function main begins program execution int main() { std::cout << "Welcome "; std::cout << "to C++!\n"; return 0;
Outline
15
fig01_04.cpp Multiple stream insertion (1 of 1) statements produce one line of output. fig01_04.cpp output (1 of 1)
Welcome to C++!
1 2 3 4 5 6 7 8 9 10 11 12
// Fig. 1.5: fig01_05.cpp // Printing multiple lines with a single statement #include <iostream>
Outline
to fig01_05.cpp (1 of 1) fig01_05.cpp output (1 of 1)
16
Using newline characters // function main begins program execution print on multiple lines. int main() { std::cout << "Welcome\nto\n\nC++!\n";
return 0; // indicate that program ended successfully
Welcome to C++!
17
18
19
= (assignment operator)
Assigns value to variable Binary operator (two operands) Example:
sum = variable1 + variable2;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
// Fig. 1.6: fig01_06.cpp // Addition program. #include <iostream> // function main begins program execution int main() Declare integer variables. { int integer1; // first number to be input by user int integer2; // second number to be input by user Use stream extraction int sum; // variable in which sum will be stored std::cout << "Enter first std::cin >> integer1;
Outline
fig01_06.cpp (1 of 1)
20
operator with standard input stream to obtain prompt integer\n"; // user input.
// read an integer
std::cout << "Enter second integer\n"; // prompt std::cin >> integer2; // read an integer Calculations can be performed in output
statements: Stream manipulator alternative for lines 18 and 20: std::endl outputs a sum = integer1 + integer2; // assign result to sum newline, then flushes output std::cout << "Sum is " << integer1 + integer2 << std::endl; buffer. std::cout << "Sum is " << sum << std::endl; // print sum
return 0; // indicate that program ended successfully
Outline
fig01_06.cpp output (1 of 1)
21
22
/
Division Integer division truncates remainder 7 / 5 evaluates to 1
%
Modulus operator returns remainder 7 % 5 evaluates to 2
23
*, /, or % + or -
24
Relational operators
Same level of precedence
25
Relational operators > < > < >= <= x > y x < y x >= y x <= y x is greater than y x is less than y x is greater than or equal to y x is less than or equal to y
Equality operators =
== !=
x == y x != y
26
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// Fig. : fig01_14.cpp // Using if statements, relational // operators, and equality operators. #include <iostream> using std::cout; using std::cin; using std::endl; // program uses cout // program uses cin // program uses endl
Outline
fig01_14.cpp (1 of 2) using statements eliminate need for std:: prefix.
27
Declare variables. // function main begins program execution int main() { Can write cout and cin int num1; // first number to be read from user without std:: prefix. int num2; // second number to be read from user
cout << "Enter two integers, and I will tell you\n" if structure compares values << "the relationships they satisfy: "; of num1 and num2 to test fortrue If condition is cin >> num1 >> num2; // read two integers if ( num1 == num2 ) cout << num1 << " is
if ( num1 != num2 ) cout << num1 << " is not equal to " << num2 << endl;
(i.e., equality. values are equal), execute this if structure compares values statement. If << test of to " << num2 toendl;is equalnum1 andnum2condition fortrue (i.e., values are not equal), execute inequality. this statement.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
if ( num1 < num2 ) cout << num1 << " is less than " << num2 << endl; if ( num1 > num2 ) cout << num1 << " is greater than " << num2 << endl; if ( num1 <= num2 ) cout << num1 << " is less than or equal to " << num2 << endl; if ( num1 >= num2 ) cout << num1 << " is greater than or equal to " << num2 << endl; return 0; // indicate that program ended successfully
Outline
fig01_14.cpp Statements of 2) be split over (2 may several lines. fig01_14.cpp output (1 of 2)
28
Enter two integers, and I will tell you the relationships they satisfy: 22 12 22 is not equal to 12 22 is greater than 12 22 is greater than or equal to 12
Enter two integers, and I will tell you the relationships they satisfy: 7 7 7 is equal to 7 7 is less than or equal to 7 7 is greater than or equal to 7
Outline
fig01_14.cpp output (2 of 2)
29
1.26 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language Object oriented programming (OOP)
Model real-world objects with software counterparts Attributes (state) - properties of objects
Size, shape, color, weight, etc.
30
Inheritance
New classes of objects absorb characteristics from existing classes
Objects
Encapsulate data and functions Information hiding Communicate across well-defined interfaces
2003 Prentice Hall, Inc. All rights reserved.