container classes & exception handlingclasses.mst.edu/compsci1570/slides/isequals.pdf code trace...

24
http://cs.mst.edu IsEquals Operator

Upload: others

Post on 20-Jan-2021

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

IsEquals Operator

Page 2: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

Page 3: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in main

m_Numerator: 9m_Denominator: 32

g in main

Page 4: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

Page 5: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

64

Page 6: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

649

Page 7: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

576

Page 8: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

57632

Page 9: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

576329

Page 10: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

576288

Page 11: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f==g)

...

// fraction.h

...

class Fraction

{

friend bool operator==(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator==rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator==

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator==

576288 false

Page 12: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

NotEquals Operator

Page 13: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

Page 14: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in main

m_Numerator: 9m_Denominator: 32

g in main

Page 15: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator!=

Page 16: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator!=

64

Page 17: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator!=

649

Page 18: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator!=

576

Page 19: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operato!r=

57632

Page 20: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator!=

576329

Page 21: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator!=

576288

Page 22: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Code Trace// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator!=(const Fraction & lhs, const Fraction & rhs)

{

return lhs.m_Numerator*rhs.m_Denominator!=rhs.m_Numerator*lhs.m_Denominator;

}

m_Numerator: 9m_Denominator: 64

f in mainlhs in operator!=

m_Numerator: 9m_Denominator: 32

g in mainrhs in operator!=

576288 true

Page 23: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

Alternative Definition// main.cpp

...

int main()

{

if(f!=g)

...

// fraction.h

...

class Fraction

{

friend bool operator!=(const Fraction & lhs, const Fraction & rhs);

...

// fraction.cpp

bool operator==(const Fraction & lhs, const Fraction & rhs)

{

return !(lhs==rhs);

}

Page 24: Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace // main.cpp... int main() {if(f==g)... // fraction.h... class Fraction {friend bool

http://cs.mst.edu

End of Session