Funktionen für Objekte in C++ [] (Funktionen für Objekte in C++), Lektion, Seite 723344
https://www.purl.org/stefan_ram/pub/nichteingetragene_c++ (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Funktionen für Objekte in C++ 

Unter einer Operation auf einem Zustand  oder einer Operation auf einem Objekt  verstehen wir eine Anwendung einer Regel, die angibt, wie der Zustand oder das Objekt dabei verwendet oder verändert werden soll.

Für jede Operation auf einem Objekt, kann man jeweils eine Funktion schreiben.

main.cpp

#include <iostream>
#include <ostream>

struct pair
{ double x;
double y; };

void set
( ::pair & p,
double const x,
double const y )
{ p.x = x;
p.y = y; }

void add
( ::pair & p,
::pair const & q )
{ p.x += q.x;
p.y += q.y; }

pair sum
( ::pair p,
::pair const & q )
{ ::add( p, q );
return p; }

void print
( ::pair const & p )
{ ::std::cout << p.x << '\n';
::std::cout << p.y << '\n'; }

int main()
{ ::pair p;
::pair q;
::set( p, 2, 3 );
::set( q, 1, 4 );
::print( ::sum( p, q )); }

::std::cout
3
7

Wir erläutern einige Programmteile im folgenden.

void set
( ::pair & p,
double const x,
double const y )
{ p.x = x;
p.y = y; }

Die Funktion »set« erlaubt es, einem Objekt »p« einen Wert zuzuweisen. Der Wert besteht aus zwei Zahlen »x« und »y«.

void add
( ::pair & p,
::pair const & q )
{ p.x += q.x;
p.y += q.y; }

Die Funktion »add« erlaubt es, zu einem Objekt »p« ein Objekt »q« hinzuzuaddieren. Dies geschieht feldweise.

pair sum
( ::pair p,
::pair const & q )
{ ::add( p, q );
return p; }

Die Funktion »sum« erlaubt es, zwei Objekte »p« und Objekt »q« zu addieren.

Dabei wird auf die bereits definierte Funktion »add« zurückgegriffen.

Während »add« nur mit Referenzen arbeitete, wird hier ein neues Parameterobjekt »p« erzeugt. Während »add« eines der Argumentobjekte veränderte, verändert »sum« kein Argumentwert, sondern gibt den Wert des neuen Parameterobjektes »p« zurück. Dies kann recht effizient optimiert werden, so daß hierbei nicht allzuviele unnötige Kopien zu befürchten sind.

void print
( ::pair const & p )
{ ::std::cout << p.x << '\n';
::std::cout << p.y << '\n'; }

Die Funktion »print« erlaubt es, ein Objekt »p« auszugeben.

int main()
{ ::pair p;
::pair q;
::set( p, 2, 3 );
::set( q, 1, 4 );
::print( ::sum( p, q )); }

Im Hauptprogramm werden als Beispiel der Anwendung der oben definierten Funktionen zwei Paare mit bestimmten Werten angelegt, deren Summe dann ausgegeben wird.

Übungsaufgaben

/   Übungsaufgabe

Erweitern Sie das Programm um eine Methode, welche den Wert eines Paares in ein anderes Paar kopiert.

/   Übungsaufgabe (1)

Erweitern Sie das Programm um eine Methode, welche bei einem Paar die Werte der beiden Felder miteinander vertauscht.

/   Übungsaufgabe (2)

Erweitern Sie das Programm um eine Methode, welche bei die Werte zweier Paare miteinander vertauscht (so daß danach das eine Paar die Werte enthält, welche zuvor das andere Paar enthielt).

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723344 stefan_ram:723344 Funktionen für Objekte in C++ Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723344, slrprddef723344, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/nichteingetragene_c++