Bracket Operator.

Slides:



Advertisements
Similar presentations
Operator overloading redefine the operations of operators
Advertisements

For(int i = 1; i
What is output line of the following C++ code? Please trace int i = 1, QP; DATA: 4, B, 3, A double credit, totCredit=0.0; double num = 0.0; string LG;
Chapter 6 Advanced Function Features Pass by Value Pass by Reference Const parameters Overloaded functions.
CS 112 Introduction to Programming
Templates in C++. Generic Programming Programming/developing algorithms with the abstraction of types The uses of the abstract type define the necessary.
Template Implicit function overload. Function overload Function overload double ssqq(double & a, double & b) { return(a*b);} float ssqq(float & a, float.
1 Data Structures - CSCI 102 CS102 C++ Operator Overloading Prof Tejada.
Hand Trace and Output for: int digit = 0; int number = 1423; do { digit = number % 10; System.out.println(digit); number = number / 10; } while (number.
Templated Functions. Overloading vs Templating  Overloaded functions allow multiple functions with the same name.
Chapter 8. Operator Overloading Operator overloading gives the opportunity to redefine C++ Operator overloading refers to redefine C++ operators such.
Arrays in Functions. Indexed Variables as Function Arguments An indexed variable can be used as a function argument just like any other variable Suppose.
Operator Overloading Back to Fractions.... Implementing an Object We’ve talked at length about object- orientation. – We’ve looked heavily at encapsulation.
Templates Overload function: define more than one function With same function name Different parameter type Different type Different number of parameter.
CS 240: Data Structures Supplemental: Command Line Input.
People Fractions. Problem 1 of 20 Answer 1 = 10 Problem 2 of 20 Answer 2 = 5.
Negation Operator. Code Trace // main.cpp... g = -f;... // fraction.h... class Fraction { friend Fraction operator-(const.
Overloading Operators. Operators  Operators are functions, but with a different kind of name – a symbol.  Functions.
Binary Search Trees II Morse Code.
Recursion Examples Fundamentals of CS Case 1: Code /* Recursion: Case 1 */ #include void count (int index); main () { count (0); getchar(); } void count.
CSC 107 – Programming For Science. Today’s Goal Variables  Variable  Variable name location to store data  Only for humans; 0 x 7E8A2410 harder to.
TEXT FILES. Text Files Files Data saved in external storage and can be referenced by a single name File types Document, image, audio, video, etc. Program.
Current Assignments Homework 3 is due tonight. Iteration and basic functions. Exam 1 on Monday.
Multiple Files. Monolithic vs Modular  one file before  system includes  main driver function  prototypes  function.
Abstract Data Type and C++ Classes 1. Object-oriented Programming 2. Abstract Data Types 3. Classes and Objects 4. Examples 5. Member Functions and Member.
Chapter 13 – C++ String Class. String objects u Do not need to specify size of string object –C++ keeps track of size of text –C++ expands memory region.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 RAD due Friday in your Wiki. Presentations week 6 – next week. Schedule on next slide. Today: –Operator.
Object-Oriented Paradigm The Concept  Bundled together in one object  Data Types  Functionality  Encapsulation.
Reading and Writing Text over USB A Colony Project Tutorial.
Const Member Functions Which are read-only? //fraction.h... class Fraction { public: void readin(); void print();
1 Advanced Programming Examples Output. Show the exact output produced by the following code segment. char[,] pic = new char[6,6]; for (int i = 0; i
Constructors Initializing New Objects #include “fraction.h” int main() { float x; float y = 6.7; float z(7.2); Fraction.
C Programming Chapters 11, . . .
The Basics of Arrays Problem: How can the rancher easily catalog all of his cattle?
CMSC 202 Lesson 6 Functions II. Warmup Correctly implement a swap function such that the following code will work: int a = 7; int b = 8; Swap(a, b); cout.
Overview Class Scope Review: Object parameters passed by value reference constant reference Friend function Overloading operator.
1 Project 3: Farey Sequences. 2 Farey Sequences Further details about Farey sequences, and more examples, can be found in the Wikipedia article:
Review. Problem 1 What is the output of the following piece of code void increment(int x) { x++; } int main() { int y = 10; increment(y); cout
Print Row Function void PrintRow(float x[ ][4],int i) { int j; for(j=0;j
Arrays and Indexers Programming in C# Arrays and Indexers CSE 494R (proposed course for 459 Programming in C#) Prof. Roger Crawfis.
Fractions and Decimal Fractions Fractions Decimal Fractions
Templates. C++ 2 Outline Function templates  Function template definition  Function template overloading Class templates  Class template definition.
Int fact (int n) { If (n == 0) return 1; else return n * fact (n – 1); } 5 void main () { Int Sum; : Sum = fact (5); : } Factorial Program Using Recursion.
Computer Programming Arrays 1. Question #1 2 Question Choose the correct answer..
1 Inheritance and Polymorphism Chapter Getting Started Continue the Cat Management example from previous presentation.
Second Project Implementation of B+Tree CSED421: Database Systems Labs.
Functions Input and output Lecture 2. Constants #define – is a preprocessor directive Most common use.
Static Members.
Regarding assignment 1 Style standards Program organization
What is a compiler? Compiler Source code (e.g. C++) Target code
2.2 Defining Classes Part 2 academy.zariba.com.
Vectors.
شاخصهای عملکردی بیمارستان
Null-Terminated Character Arrays
Overloading the << operator
Accessor and Mutator Functions
Arrays November 8, 2017.
Introduction to Programming
فرق بین خوب وعالی فقط اندکی تلاش بیشتر است
The Run-Time Stack and Reference Parameters
Friend Functions.
7. 11 Introduction to C++ Standard Library Class Template vector (Cont
References, const and classes
Default Arguments.
Object-Oriented Programming (OOP) Lecture No. 20
Function Overloading.
CMSC 202 Lesson 6 Functions II.
Defining Class Functions
Overloading the << operator
How Memory Leaks Work with Memory Diagram
Presentation transcript:

Bracket Operator

Code Trace // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); }

Code Trace main:: f m_Numerator: 3 m_Denominator: 4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f m_Numerator: 3 m_Denominator: 4

Code Trace main:: f m_Numerator: 3 m_Denominator: 4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f m_Numerator: 3 m_Denominator: 4

Code Trace main:: f operator[]::index m_Numerator: 3 m_Denominator: 4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f operator[]::index m_Numerator: 3 m_Denominator: 4 5

Code Trace main:: f operator[]::index m_Numerator: 3 m_Denominator: 4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f operator[]::index m_Numerator: 3 m_Denominator: 4 5

Code Trace main:: f output buffer m_Numerator: 3 m_Denominator: 4 4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer m_Numerator: 3 m_Denominator: 4 4

Code Trace main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4

Code Trace main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4

Code Trace main:: f output buffer operator[]::index m_Numerator: 3 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer operator[]::index m_Numerator: 3 m_Denominator: 4 _4 1

Code Trace main:: f output buffer operator[]::index m_Numerator: 3 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer operator[]::index m_Numerator: 3 m_Denominator: 4 _4 1

Code Trace main:: f output buffer m_Numerator: 3 m_Denominator: 4 4_4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer m_Numerator: 3 m_Denominator: 4 4_4

Code Trace main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4_4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4_4

Code Trace main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4_4 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer m_Numerator: 3 m_Denominator: 4 _4_4

Code Trace main:: f output buffer operator[]::index m_Numerator: 3 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer operator[]::index m_Numerator: 3 m_Denominator: 4 _4_4

Code Trace main:: f output buffer operator[]::index m_Numerator: 3 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer operator[]::index m_Numerator: 3 m_Denominator: 4 _4_4

Code Trace main:: f output buffer operator[]::index m_Numerator: 3 // main.cpp ... int main() { Fraction f(3,4); cout<<f[0]<<“ ”<<f[1]<<“ ”<<f[5]; // fraction.cpp int Fraction::operator [] (const int index)     return (index==0 ? m_Numerator : m_Denominator); } main:: f output buffer operator[]::index m_Numerator: 3 m_Denominator: 4 3_4_4

Overloaded Wookie

End of Session