Vektor-Elemente

Padawan

Erfahrenes Mitglied
Hallo Leute,

ich hatte folgenden Code geschrieben, womit ich bei den Vektoren nicht mehr weiter komme:
Der Header
C++:
#ifndef _Stockwerk_h_
   #define _Stockwerk_h_

#include <iostream>
#include <vector>
#include <windows.h>

class Stockwerk
{

public:
	Stockwerk();
	virtual ~Stockwerk();
	int* pruefeSensoren();

private:
	int etagenZahl;
	Sensor *m_sensor;
	std::vector<Sensor *> StockwerkErreicht;
    std::vector<Sensor *> oberhalbStockwerk;
	std::vector<Sensor *> unterhalbStockwerk;
	Sensor *Ruftouchpad;

};
#endif

Die Cpp-Datei
C++:
/******************************************************************************
* Name: Stockwerk.cpp
******************************************************************************/

#include "Stockwerk.h"
/******************************************************************************
* Beschreibung: Ermittelt den aktuellen Stockwekr
******************************************************************************/
int* Stockwerk::pruefeSensoren(){
	while(true){
		for(int x=0; x<StockwerkErreicht.size(); x++){
			if(StockwerkErreicht.at(x) == true){
				this->setAnzeigeStockwerk(x-1);
			}
		}
	}
	return 0;
}

Mit den folgenden 2 Fehlermeldungen komme ich nicht weiter. Beide beziehen sich auf die if-Bedingung auf zeile 12:
Fehler 3 error C2446: '==': Keine Konvertierung von 'int' in 'Sensor *'
Fehler 4 error C2040: '==': 'Sensor *' unterscheidet sich von 'int' in Bezug auf die Anzahl vorgenommener Dereferenzierungen 39

Der Rückgabewert von StockwerkErreicht ist Boolean.
Wie kann man auf die einzelnen Elemente eines Vektors zugreifen?

Ich hoffe ihr könnt mir helfen.

Lg Padawan
 
Zuletzt bearbeitet von einem Moderator:
Dein Stockwerkerreicht ist laut deinem Header ein std::vector<Sensor*>, also kein bool. Klingt so, als wolltest du da eher einen

std::vector<bool>

haben?
 
Hi,
die sache ist die, dass Sensor an sich wieder eine Klasse ist, wovon eigl. ürsprünglich Objekte (17 an der Zahl) erzeugt werden sollen.

Lg Padawan
 
Hallo Padawan,

was willst du eigentlich mit dieser if-Abfrage erreichen bzw. was willst du dort überhaupt testen?

Da du eine Schleife über die Anzahl der Vektorelemente durchläufst, ist ja shon mal klar, dass der Eintrag "StockwerkErreicht.at(x)" vorhanden ist. Alles was du prüfen kannst muss in der Sensor-Klasse enthalten sein.
C++:
if ( StockwerkErreicht.at(x)->Irgendein-Member-Von-Sensor == true ) ...

Gruß
MCoder
 
Zurück