The purpose of this chapter is to give you a feel for object-oriented programming and to introduce a conceptual foundation of object-oriented programming. Another purpose of this chapter is to introduce the software development process. | CSC241: Object Oriented Programming Lecture No 12 Previous Lecture Data conversion one-argument constructor conversion function Overloading stream operators Stream insertion Stream extraction Data conversion summary Kilometers km1 = ; One argument constructor Kilometers (float) Km1 = Overloaded function void operator=(float) or One argument constructor Kilometers (float) Miles m1 = km1; Miles m1(km1) One argument constructor Miles(Kilometers kilometers) or Conversion function in Kilometers class operator Miles() Cont. m1 = km1; Overloaded function void operator=(Kilometers) in Miles class or Conversion function in Kilometers class operator Miles() or One argument constructor in miles class Miles(Kilometers km) float f = km1; Conversion function in Kilometers class operator float() Go to program Today’s Lecture Implicit conversion Explicit constructor Overloading Stream insertion > Inheritance Implicit conversion: one argument constructor Any . | CSC241: Object Oriented Programming Lecture No 12 Previous Lecture Data conversion one-argument constructor conversion function Overloading stream operators Stream insertion Stream extraction Data conversion summary Kilometers km1 = ; One argument constructor Kilometers (float) Km1 = Overloaded function void operator=(float) or One argument constructor Kilometers (float) Miles m1 = km1; Miles m1(km1) One argument constructor Miles(Kilometers kilometers) or Conversion function in Kilometers class operator Miles() Cont. m1 = km1; Overloaded function void operator=(Kilometers) in Miles class or Conversion function in Kilometers class operator Miles() or One argument constructor in miles class Miles(Kilometers km) float f = km1; Conversion function in Kilometers class operator float() Go to program Today’s Lecture Implicit conversion Explicit constructor Overloading Stream insertion > Inheritance Implicit conversion: one argument constructor Any single-argument constructor can be used by the compiler to perform an implicit conversion Miles(float m) : miles(m) { } Miles m1 = ; m1 = ; Conversion is automatic/implicit Miles(float m) Miles(float m) Explicit constructor Implicit conversions are undesirable or having chances of errors Making a single argument constructor explicit will avoid implicit conversion Distance (float m) { . } explicit Distance(float m) { . } Go to program Overloading Stream Insertion and Stream Extraction Distance dist1; cin >> dist1 cout > (istream& s, Distance& d); friend ostream& operator > (istream& s, Distance& d) { cout > ; cout > ; return s; } ostream& operator << (ostream& s, Distance& d) { s << << “ : ” << <