160 likes | 201 Views
Chapter 2 Objects and Classes. Bernard Chen Spring 2006. 2.1 What is OO programming?. Object: an atomic unit that has structure and state Information hiding : Black-box analogy Encapsulation : grouping of data and functions
E N D
Chapter 2Objects and Classes Bernard Chen Spring 2006
2.1 What is OO programming? • Object: an atomic unit that has structure and state • Information hiding: Black-box analogy • Encapsulation: grouping of data and functions • Inheritance: mechanism allows extending functionality of an object.
How does C++ support OO • Template: the logic is independent of the type • Inheritance • Polymorphism: allows us to implement new types (classes) that share same logic
2.2 Basic Class Syntax • Class members: either data or functions and categorized into either public, protected,or private. • Public: visible to an instance of (object) a class • Private: visible only inside an instance of a class • Protected: similar to private but visible to derived classes. • Default: all members are private
Constructors • Member functions that describe how an object is declared and initialized. • If no constructor defined, compilers will generate one called default constructor. • Explicit constructors prevent automatic type conversion.
Constant Member Function • Constant functions (accessors) : functions that do not change any data member. • const is a part of the function signature. [const] return_type name([const] parameter_list) [const]; • Interface: describes what can be done to the object, i.e. the header. • Implementation: represents internal processes specified by the interface.
Big three: Destructor, Copy Constructor, and Operator = •Destructor tells how an object is destroyed and freesdresources when it exists scope. ~IntCell(); •Copy Constructor allows a new object construct using the data in an existing one. IntCella(5); // a new IntCellcall a IntCellb(a); // another IntCellcall b •Operator = copy assignment, copies data members using = by default.=> may cause shallow copying.
2.3 Additional C++ Features • Operator overloading: extending the types to which an operator can be applied. example: string x=“Mary’s score is:”; int y=95; string z=x+y; • “.”, “.*”, “?:”, “sizeof” can’t be overloaded
Additional C++ Features • Type conversion creates a temporary object of a new type– Example: int a = 5; double b = a; //implicit cast
2.5 Exceptions (report error) • An object that stores information transmitted outside the normal return sequence and is used to signal exceptional occurrences • Handle exceptions by throw and catch clauses.
Exceptions example try { for (intn=0; n<=10; n++) { if (n>9) throw "Out of range"; } } catch (char * str) { cout<< "Exception: " << str<< endl; }
2.6 String Class • C string: array of character terminated by ‘\0’ • C++ standard string: a STL class with all overload operators and built-in functions • http://www.bgsu.edu/departments/compsci/docs/string.html
Summary • Construction/ destruction of objects • Copy semantics • Overloading • Implicit/explicit type conversion • Information hiding/atomicity