Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Malwine Raphael Geändert vor über 10 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.