nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Kommunikation zwischen Objekten und Initialisierung mit (void*)0

Von: Holger Jorra (spamtrap54321@gmx.net) [Profil]
Datum: 20.07.2009 11:13
Message-ID: <4a64352e$0$30234$9b4e6d93@newsspool1.arcor-online.net>
Newsgroup: de.comp.lang.iso-c++
Hallo allerseits!

Ich versuche gerade Quellcode aus einer anderen Sprache nach C++ zu
portieren, aus Übungszwecken. Dabei geht es um die Kommunikation
zwischen Objekten. Im speziellen Fall gibt es u.a. eine Klasse Relais
und eine Klasse Taster. Ein oder mehrere Taster _können_ einem Relais
zugeordnet werden, müssen sie aber nicht, dafür hat so ein T. ein Member
vom Typ Relais. So weit so klar. Allerdings ist es so, dass ich

1. abfragen können will, ob der Taster einem Relais zugewiesen wurde
2. nicht weiß, wie ich eine Referenz auf ein Relais an so einen Taster
übergebe

Hier das vorläufige Beispiel:

#############################
// Taster.h - Deklaration der Tasterklasse

#include "Relais.h"

#ifndef _TASTER_H_
#define _TASTER_H_

class Taster{
private:
Relais relais;

public:
Taster( void );
Taster( Relais akt_relais );

void set_relais( Relais akt_relais );
void push_taster( void );
};

#endif
#############################
#############################
// Taster.cpp - Methoden vom Taster

#include "Taster.h"
#define NULL (void*)0

Taster::Taster( void ){
this->relais = NULL; // eigentlich gibt es NULL in C++ nicht...
}

Taster::Taster( Relais akt_relais ){
this->relais = akt_relais;
}

void Taster::set_relais( Relais akt_relais ){
this->relais = akt_relais;
}

void Taster::push_taster( void ){
if(this->relais != NULL) this->relais.toggle_relais();
}
#############################

Was den zweiten Punkt angeht, so habe ich schon versucht, das Member vom
Typ Relais* zu benutzen, schon allein weil ich dachte, dass der
Compiler dann nicht mehr wegen dem Zeiger auf nix meckern würde. War ein
Irrtum. Bei der Übergabe als Argument hab ich auch schon (Relais&
akt_relais) versucht, das hat bisher alles nichts gebracht.

Ich fische hier leider momentan im Trüben, weil ich merkwürdiger weise
weder in meiner Literatur noch im Netz vernünftige Infos zum Thema zu
finden scheine.

Kann mir hier vielleicht jemand erklären was ich falsch mache?

Gruß Holger

[ Auf dieses Posting antworten ]

Antworten