Presentation is loading. Please wait.

Presentation is loading. Please wait.

This presentation includes custom animations. To view the animations, you must view the presentation in Slide Show mode and activeX controls must be allowed.

Similar presentations


Presentation on theme: "This presentation includes custom animations. To view the animations, you must view the presentation in Slide Show mode and activeX controls must be allowed."— Presentation transcript:

1 This presentation includes custom animations. To view the animations, you must view the presentation in Slide Show mode and activeX controls must be allowed. If you have opened this lesson in PowerPoint, use the PowerPoint menus to view it in slide show mode. If you have opened this lesson in a browser and see a bar similar to that below, click on the Slide Show icon A notice similar to the one below may appear warning that ActiveX or other scripts are disabled. Enable the controls for this website in order to see the animations.

2 C++ This slide show introduces C++ & compares it to C. Christine S. Wolfe Ohio University Lancaster 2008-Aug-01 Vocabulary: attribute bool cin cout encapsulation iostream method namespace object oriented private public string w_char

3 C appeared in 1972. It was developed by Dennis Ritchie at Bell Labs. In 1979, Bjarn Stroustrup at Bell Labs became interested in adding classes to C and overcoming some of the common problems with C. His additions were adopted in 1983 as C++. C++ was first standardized in 1998.

4 C++ is a superset of C. C++ C

5 The name: BCPl (Basic Combined Programming Language) …evolved into a language nicknamed “B” Dennis Ritchie adopted parts of B into his new language. Because it was a successor to B, he called it C. Bjarne Stoustrup extended the C language to invent C++ He coined the name C++ to imitate the increment operator (++) adapted from Dale. Weems. “Programming and Problem Solving with C++)

6 C++ supports (but does not require) object-oriented programming The main objects are in the std namespace and the line using namespace std; appears after the last #include statement

7 C Fundamental Data Types void char int float double C++ Fundamental Data Types void char int float double bool wchar_t C++ includes two additional data types

8 Differences: Standard I/O C #include printf scanf C++ #include cout cin cout << “The answer is “ << Result <<endl;printf(“The answer is %d\n”, Result); cin >> Rate; scanf(“\n%f”, &Rate) cout << setw(8) << setprecision(4) << my_float; printf(“%8.4f“, my_float);

9 C++ provides a robust string header that includes a string data type. C++ Code #include using namespace std; int main () { string FirstName; FirstName = “Oscar”; return 0; } C Code #include int main () { char FirstName[25]; strcpy(FirstName, “Oscar”); return 0; }

10 // my first program in C++ #include using namespace std; int main () { cout << "Hello World!"; return 0; } /* my first program in C */ #include int main () { printf("Hello World!“); return 0; } C vs C++ Comparison of the Hello World program

11 C and C++ use the same arithmetic operators: + - * / % C and C++ use the same logical operators: ! && || C and C++ use the same comparison operators: == >= != C and C++ use the same assignment operators: = *= /= %= += -= C and C++ use the same unary operators: ++ -- -

12 C vs C++ keyboard input scanf(“\n %d”, &x); #include cin >> x;

13 In C, the programmer can define a new data type based on the fundamental types. The new data type is called a structure and is declared using the struct keyword. Inside the structure, attributes are defined based on existing data types. struct TestScore { char Pnumber[8]; int TestNum; float score; }; Variables can now be declared as type TestScore. variable namesdata types int Age; float Salary; TestScore StudentIn;

14 http://cplusplus.com A class is an expanded concept of a data structure: instead of holding only data, it can hold both data and functions. class Cat { public: int GetAge(void); void SetAge(int age); void Meow(void); private: int itsAge; } ; The concept that all the attributes and behaviors of an entity are bound together in a single class is called Encapsulation C++ expands the structure to include both the data (attributes) and functions (methods).

15 Procedure oriented programming the traditional programming that is based on algorithms or a logical step-by-step process for solving a problem. http://www.pcai.com/web/glossary/pcai_p_s_glossary.html a class of programming languages and techniques based on the concept of an “object” which is a data structure encapsulated with a set of routines which operate on the data. C++ and Java are object oriented programs http://www.powerhousemuseum.com/hsc/lexicon/glossary.htm Object oriented programming When a language supports the use of classes/objects, it is referred to as object-oriented.

16 attributes Cat itsAge GetAge(void); SetAge(int age); Meow(void); methods class name Classes are diagrammed as shown below.

17 objectclass int Age; float Salary; TestScore StudentIn; Cat Puff; An object is an instantiation of a class. In terms of variables, a class would be the type, and an object would be the variable. class Cat { public: int GetAge(void); void SetAge(int age); void Meow(void); private: int itsAge; } ;

18 class Cat { public: int GetAge(void); void SetAge(int age); void Meow(void); private: int itsAge; } ; void Cat::SetAge(int age) { itsAge = age; } Each method must be defined. Methods are defined in the same manner as a subfunction. The name of the method is justified by the prepending the class name + :: method prototype method definition

19 int main() { Cat Frisky; int Years; int YearCtr; printf("\nPlease enter Frisky's age "); fflush(stdin); scanf("\n%d", &Years); Frisky.SetAge(Years); cout << "Frisky is a cat who is "; cout << Frisky.GetAge() << " years old.\n"; for(YearCtr = 1; YearCtr <= Years; ++YearCtr) { Frisky.Meow(); } printf("\n\n\n\n"); return 0; } class Cat { public: int GetAge(void); void SetAge(int age); void Meow(void); private: int itsAge; } ; When calling a method, or referring to an attribute of the class, prepend the OBJECT name (not the class name) and a period to the method or attribute.

20 Differences: String class C #include …for C-strings C++ #include …for C-strings #include …for string class A C-string is an array of chars terminated with NULL A class string is an object and has methods that can be used to manipulate the string. By default, a literal such as “Ohio University” is a C-string.

21 Declaring strings C-strings are declared and manipulated as in C string class objects are declared as type string string FirstName; string Greeting = “Hello”; A string declared as type string can... use the assignment operator FirstName = “Jane”; use the + operatorGreeting = Greeting + “ “ + Firstname (note, at least one of the operands must be a string class object) use string methodsFirstName.substr etc use comparison operators == != = > (watch out for upper/lower case)

22 C++ cin >> >> (extraction operator) extracts desired data value from the input stream skips any leading whitespace characters if data value is a char >> extracts exactly 1 character if data value is an int >> extracts characters until first inappropriate character if data value is a float >> extracts characters until first inappropriate character if data value is a string >> extracts characters until first whitespace Examples: (given: i & j are ints, x is float, ch is char, str is a string) StatementDataResult cin >> I;32 cin >> i >> j;4 60 cin >> i >> ch >> x; 25 A 16.9 cin >> i >> j >> x;12 8 cin >> i >> x;46 32.4 15 cin >> str;Jane cin >> str;Jane Doe

23 C++ Drawbacks to the >> operator when inputting strings 1.If string isn’t large enough, the >> operator will continue to store characters into memory beyond the end of the array. 2.The >> operator cannot be used to input strings with embedded whitespace.

24 Solution cin.get() (assume ch is a char and str is a string and n is an int) get() does not skip leading whitespace cin.get(ch );reads a single character (even a whitespace) cin.get(str, n);reads up to n-1 chars & appends ‘\0’ stops at newline, or n-1 chars newline left in stream cin.get(str, n, delimiter)reads up to n-1 chars & appends ‘\0’ stops at delimiter, or n-1 chars delimiter left in stream getline(cin, str) reads entire line up to ‘ \n’ extracts newline from stream and stores


Download ppt "This presentation includes custom animations. To view the animations, you must view the presentation in Slide Show mode and activeX controls must be allowed."

Similar presentations


Ads by Google