3 Advanced

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 3 Advanced as PDF for free.

More details

  • Words: 369
  • Pages: 10
Informatik, Systemarchitecture, Operating Systems

Advanced C++ Topics.

Dresden, 2008

Construction and Destruction Constructors: Special Member Functions for object initialization – Same name as the class – No return type Destructors: Special Member Functions for object destruction – Name: ~Classname() – No return type – No arguments

TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 2 von XYZ

Constructors (class Foo) Foo() -> Default Constructor No arguments Generated by Compiler if no other Constructors Foo(Type x) -> Conversion Constructor Is used to cast type Type to Foo (implicitly) (see keyword explicit) Foo(Foo const &o) -> Copy Constructor Always generated by Compiler if not provided (related to operator = (Foo const &o), see later) Foo(Type a, Type b, Type c) -> Normal Constructor TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 3 von XYZ

Polymorphism (Advanced) Virtual Functions Support for Overriding functions in C++ Pure Virtual Functions (Abstract Function) class A { void func() = 0; }; cannot be instantiated (is abstract) Multiple Inheritance class A : public B, public C {...};

TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 4 von XYZ

Polymorphism – Virtual Dtor (Advanced) Virtual deletion ...

TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 5 von XYZ

Polymorphism II (Multiple Inheritance) Object cnt

Car

Boat

name()

name()

Amphi

TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 6 von XYZ

Polymorphism II (Multiple Inheritance)

Amphi Car Object

TU Dresden, 13.10.08

Amphi Boat Car

Boat

Object Object

Präsentationsname XYZ

Folie 7 von XYZ

Templates – Function Templates Functions that operate on a Generic Type (e.g. T)

template< typename T > int T max(T max(int a, Ta, b)int b) { return a>b?a:b; } int a, b; int x = max(a, max(a, b); b); double a, b; double x = max<double>(a, max(a, b); b);

TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 8 von XYZ

Templates – Class Templates Classes with members of Generic Types (e.g. T)

template< typename T > class List_item { List_item *_next, *_prev; void T *_data; *_data; };

TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 9 von XYZ

Don't Do This... Too Much operator overloading Keep usual semantics Avoid implicit conversion operators using namespace <X> in Header Files #define ... Use enum's for constant values Use templates for functions

TU Dresden, 13.10.08

Präsentationsname XYZ

Folie 10 von XYZ

Related Documents

3 Advanced
November 2019 12
3 Day Skill Advanced
November 2019 15
3 Day Linemen Advanced
November 2019 11
Advanced
November 2019 31
Advanced
December 2019 26