Transfers ToCSUDescriptionThis course covers principles of object-oriented design and programming using C++. The topics covered by this course include the role of objects as abstract data types; data abstraction, inheritance, and polymorphism; constructors and destructors; overloading member functions; static members; operator overloading; friend functions and classes; overriding base class member functions; private, public, and protected access; virtual member functions, pure virtual functions and abstract base classes; composition v. inheritance; exception handling; dynamic memory allocation for objects and I/O streams. THIS COURSE REPLACED CO SCI 840 IN SPRING 2020. STUDENTS CAN NOT EARN CREDIT FOR BOTH CS 216 AND CO SCI 840.