Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 3: Modifying objects Operators and Expressions JPC and JWD © 2002 McGraw-Hill, Inc. Modified by S. Sudarshan.

Similar presentations


Presentation on theme: "Chapter 3: Modifying objects Operators and Expressions JPC and JWD © 2002 McGraw-Hill, Inc. Modified by S. Sudarshan."— Presentation transcript:

1 Chapter 3: Modifying objects Operators and Expressions JPC and JWD © 2002 McGraw-Hill, Inc. Modified by S. Sudarshan

2 Memory Depiction float y = 12.5;

3 Memory Depiction float y = 12.5; int Temperature = 32;

4 Memory Depiction float y = 12.5; int Temperature = 32; char Letter = 'c';

5 Memory Depiction float y = 12.5; int Temperature = 32; char Letter = 'c'; int Number; 12.5 32 'c' y Temperature Letter 1000 1001 1002 1003 1004 1005 1006 - Number 1007 1009 1008 1010 1011 1012 1013 1014 Unused space: integers/longs/floats/doubles should be word aligned on most CPUs, i.e. start at multiples of word size

6 Assignment Statement Basic form object = expression ; Celsius = (Fahrenheit - 32) * 5 / 9; y = m * x + b; Action Expression is evaluated Expression value stored in object Target becomes source

7 Swapping Values int Value1 = 10; int Value2 = 20; Suppose we want to swap Value1 and Value2?

8 Swapping Values int Value1 = 10; int Value2 = 20; int Hold = Value1;

9 Swapping Values int Value1 = 10; int Value2 = 20; int Hold = Value1; Value1 = Value2;

10 Swapping Values int Value1 = 10; int Value2 = 20; int Hold = Value1; Value1 = Value2;

11 Swapping Values int Value1 = 10; int Value2 = 20; int Hold = Value1; Value1 = Value2; Value2 = Hold;

12 Swapping Values int Value1 = 10; int Value2 = 20; int Hold = Value1; Value1 = Value2; Value2 = Hold; We swapped the values of objects Value1 and Value2 using Hold as temporary holder for Value1’s starting value!

13 Const Definitions Modifier const indicates that an object cannot be changed Object is read-only Useful when defining objects representing physical and mathematical constants const float Pi = 3.1415; Value has a name that can be used throughout the program const int SampleSize = 100; Makes changing the constant easy Only need to change the definition and recompile

14 Assignment Conversions Floating-point expression assigned to an integer object is truncated Integer expression assigned to a floating-point object is converted to a floating-point value Consider float y = 2.7; int i = 15; int j = 10; i = (int) y; // i is now 2 cout << i << endl; y = j; // y is now 10.0 cout << y << endl;

15 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples int i = 3; i += 4; // i is now 7 cout << i << endl; float a = 3.2; a *= 2.0; // a is now 6.4 cout << a << endl;

16 Increment and Decrement C++ has special operators for incrementing or decrementing an object by one Examples int k = 4; ++k; // k is 5 k++; // k is 6 cout << k << endl; int i = k++; // i is 6, k is 7 cout << i << " " << k << endl; int j = ++k; // j is 8, k is 8 cout << j << " " << k << endl; syntax semantics -- meaning

17 Nonfundamental Types Nonfundamental as they are additions to the language C++ permits definition of new types and classes A class is a special kind of type E.g. Standard Template Library (STL) provides class string Class objects typically have Data members that represent attributes and values Member functions for object inspection and manipulation Members are accessed using the selection operator (.) j = s.size(); Auxiliary functions for other behaviors Libraries often provide special-purpose types and classes Programmers can also define their own types and classes

18 Class string Used to represent a sequence of characters as a single object Some definitions string Name = "Joanne"; string DecimalPoint = "."; string empty = ""; string copy = name; string Question = '?'; // illegal

19 Class String To access a library use a preprocessor directive to add its definitions to your program file #include The using namespace std statement makes syntax less clumsy Without it std::string s = "Sharp"; std::string t = "Spiffy "; With it using namespace std; // std contains string string s = "Sharp"; string t = "Spiffy"; cin >> s; cout << t; “foo”.size() – illegal s.size() -- legal

20 Class string Some string member functions size() determines number of characters in the string string Saying = "Rambling with Gambling"; cout << Saying.size() << endl; // 22 substr() determines a substring (Note first position has index 0) string Word = Saying.substr(9, 4); // (pos, width) // returns “with” find() computes the position of a substring int j = Saying.find("it"); // 10 int k = Saying.find("its"); // ?  If string not found, value >= string.size() is returned string.find(substring, startpos) returns first position in string, after startpos, where the substring appears

21 Class string Auxiliary functions and operators getline() extracts the next input line string Response; cout << "Enter text: "; getline(cin, Response, '\n'); cout << "Response is \"" << Response << "\"” << endl; Example run Enter text: Want what you do Response is "Want what you do" character that terminates the line

22 Class string Auxiliary operators + string concatenation string Part1 = "Me"; string Part2 = " and "; string Part3 = "You"; string All = Part1 + Part2 + Part3; “foo “ + “bar” -- illegal += compound concatenation assignment string ThePlace = “IIT"; ThePlace += ", Bombay"; == ThePlace + “, Bombay” “Bombay” + ThePlace -- also legal

23 #include using namespace std; int main() { cout << "Enter the date in American format: " << "(e.g., January 1, 2007) : "; string Date; getline(cin, Date, '\n'); int i = Date.find(" "); string Month = Date.substr(0, i); int k = Date.find(","); string Day = Date.substr(i + 1, k - i - 1); string Year = Date.substr(k + 2, Date.size() - 1);//-k-2 string NewDate = Day + " " + Month + " " + Year; cout << "Original date: " << Date << endl; cout << "Converted date: " << NewDate << endl; return 0; } parse, parsing: breaking down a string into its parts

24 End of Chapter

25 Definition int NewStudents = 6;

26 Definition int NewStudents = 6; int OldStudents = 21;

27 Definition int NewStudents = 6; int OldStudents = 21; int TotalStudents;

28 Assignment Statement int NewStudents = 6; int OldStudents = 21; int TotalStudents; TotalStudents = NewStudents + OldStudents;

29 Assignment Statement int NewStudents = 6; int OldStudents = 21; int TotalStudents; TotalStudents = NewStudents + OldStudents;

30 Assignment Statement int NewStudents = 6; int OldStudents = 21; int TotalStudents; TotalStudents = NewStudents + OldStudents; OldStudents = TotalStudents;

31 Assignment Statement int NewStudents = 6; int OldStudents = 21; int TotalStudents; TotalStudents = NewStudents + OldStudents; OldStudents = TotalStudents;

32 Incrementing int i = 1;

33 Incrementing int i = 1; i = i + 1; Assign the value of expression i + 1 to i Evaluates to 2


Download ppt "Chapter 3: Modifying objects Operators and Expressions JPC and JWD © 2002 McGraw-Hill, Inc. Modified by S. Sudarshan."

Similar presentations


Ads by Google