Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Abstrakter Datentyp in C++ I - Klasse -

Ähnliche Präsentationen


Präsentation zum Thema: "Abstrakter Datentyp in C++ I - Klasse -"—  Präsentation transkript:

1 Abstrakter Datentyp in C++ I - Klasse -
class Vector { private: double x; double y; double z; public: void set (double a, double b, double c); double x_coord (); double y_coord (); double z_coord (); double length (); void smult (double); Vector add (Vector, Vector); double sprod (Vector a); void vprod (Vector a, Vector b); } Programmierung FH Bingen

2 Klasse II class Classname Klassen-Name { private: ....... public:
} Klassen-Name Member: Attribute Methoden Programmierung FH Bingen

3 Klasse III private member: auf die private members können nur Methoden der Klasse selbst zugreifen. Attribute können nur durch Methoden dieser Klasse gelesen oder manipuliert werden. Methoden können nur durch Methoden dieser Klasse aufgerufen werden. public member: der Zugriff auf die public members ist für alle Methoden zugelassen. Programmierung FH Bingen

4 Klasse IV - Definition eines Objektes -
Vector a; a.x = 0; Vector b; b.set (1, 0, 0); Programmierung FH Bingen

5 Scope Resolution Operator
Klasse V - Methoden - double Vector::set (double a, double b, double c); { x = a; y=b; z = c; } double Vector::x_coord() return x; double Vector::y_coord() return y; double Vector::z_coord() return z; Scope Resolution Operator Programmierung FH Bingen

6 Klasse VI double Vector::length () { return sqrt (x*x + y*y + z*z); }
void Vector::smult (double skalar) x *= skalar; y *= skalar; z *= skalar; Vector Vector::add (Vector a, Vector b) x = a.x + b.x; y = a.y + b.y; z = a.z + b.z; Programmierung FH Bingen

7 Klasse VII double Vector::sprod (Vector a) {
return x*a.x + y*a.y + z*a.z; } void Vector::vprod (Vector a, Vector b) x = a.y*b.z - b.y*a.z; y = -(a.x*b.z - b.x*a.z); z = a.x*b.y - b.x*a.y; Programmierung FH Bingen

8 Klasse VIII Instanzen der Klasse Vector #include <iostream.h>
#include <math.h> void main () { Vector a, b, c; a.set (1, 0, 0); b.set (0, 0, 1); cout << "\nDie Laenge von a = (" << a.x_coord() <<", "<< a.y_coord() << ", " <<a.z_coord() << ") ist " << a.length() << '\n'; // printf ("\nDie Laenge von ( %f, %f, %f ) ist %f\n", a.x_coord(), a.y_coord(), a.z_coord(), a.length()); c.vprod(a,b); cout << "\nDie Laenge von c = (" << c.x_coord() <<", "<< c.y_coord() << ", " << c.z_coord() << ") ist " << c.length() << '\n'; c.add(a, b); } Instanzen der Klasse Vector Programmierung FH Bingen

9 Klasse IX - Konstruktoren -
Lebenszyklus der Instanz einer Klasse: Instantiieren und Initialisieren eines Objektes Benutzen eines Objektes Beseitigen eines Objektes Programmierung FH Bingen

10 Klasse X - Konstruktor -
Ein Konstruktor ist eine Methode. Er kann deshalb auch Parameter tragen. Ein Konstruktor trägt den Namen seiner Klasse. Ein Konstruktor trägt keinen Return-Typ (auch nicht void). Eine Klasse kann mehrere Konstruktoren beinhalten. Programmierung FH Bingen

11 Klasse XI - Konstruktor -
class Vector { private: double x; double y; double z; public: Vector (); Vector (double, double, double); }; Programmierung FH Bingen

12 Klasse XII - Konstruktor -
Vector::Vector() { x=0; y=0; z=0; } Vector::Vector (double a, double b, double c) x = a; y = b; z = c; Programmierung FH Bingen

13 Klasse XIII - Konstruktor -
void main () { Vector a(1,0,0); Vector b(1,1,1); Vector c; } Programmierung FH Bingen

14 Überladen I In C++ dürfen unterschiedliche Funktionen gleichen Namens definiert werden. Diese Funktionen müssen sich in ihrer Parameter-Signatur unterscheiden Programmierung FH Bingen

15 Überladen II Vector::print ( double x) {
cout << "Die Koordinate hat den Wert" << x << '\n'; } Vector::print (Vector a) cout << "Der Vector hat den Wert ( " << a.x << ", " a.y << ", " << a.z << ")\n"; Programmierung FH Bingen

16 Überladen III main () { Vector a(1, 2, 3); print (a.x_coord);
} Programmierung FH Bingen


Herunterladen ppt "Abstrakter Datentyp in C++ I - Klasse -"

Ähnliche Präsentationen


Google-Anzeigen