Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace //...
Transcript of Container Classes & Exception Handlingclasses.mst.edu/compsci1570/slides/isequals.pdf Code Trace //...
http://cs.mst.edu
IsEquals Operator
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;
}
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
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==
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
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
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
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
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
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
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
http://cs.mst.edu
NotEquals Operator
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;
}
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
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!=
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
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
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
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
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
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
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
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);
}
http://cs.mst.edu
End of Session