Pointer auf das erste Element eines vectors zurück geben

Schnelle objektorientierte, kompilierende Programmiersprache.
gizno82
Beiträge: 46
Registriert: Sa Dez 19, 2009 4:03 pm

Re: Pointer auf das erste Element eines vectors zurück geben

Beitrag von gizno82 » Mo Jan 09, 2012 8:07 pm

Der Compiler spuckt mir folgende Fehlermeldung aus :cry:

**** Build of configuration Default for project measurement ****

make all
g++ -O2 -g -Wall -fmessage-length=0 -c -o measurement.o measurement.cpp
In file included from measurement.cpp:11:
cMeasurement.h: In constructor ‘cMeasurement::cMeasurement()’:
cMeasurement.h:20: error: expected primary-expression before ‘int’
cMeasurement.h:20: error: expected ‘{’ at end of input
make: *** [measurement.o] Fehler 1

Das heißt wohl das ihm ne { fehlt in der cMeasurement.h hab alle Klammern in der header datei kontrolliert es passt eigentlich alles.
Könnte bitte jemand drüber schauen, ich hab so wohl in der cMeasurement.h als auch in der cpp Datei alle Klammern kontrolliert und nix vergessen.
Bin ratlos

Hier noch mal die Header Datei

Code: Alles auswählen


#ifndef CMEASUREMENT_H_
#define CMEASUREMENT_H_

#include <vector>

class cMeasurement
{
	private:
		std::vector<double> values;
	public:
		std::vector<double> const & getStabLenght(void);
		cMeasurement(void): values(int numberOfValues);
		~cMeasurement(void);
};

#endif /* CMEASUREMENT_H_ */


und hier die cpp Datei

Code: Alles auswählen


#include "cMeasurement.h"

std::vector<double> const & cMeasurement::getValues(void) const
{
	return values;
}

cMeasurement::cMeasurement(void): values(int numberOfValues)
{

}

~cMeasurement::cMeasurement(void)
{

}


Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Pointer auf das erste Element eines vectors zurück geben

Beitrag von Bebu » Mo Jan 09, 2012 8:15 pm

Code: Alles auswählen

cMeasurement(void): values(int numberOfValues);
Könnte diese Zeile schuld sein. Das ist der Konstruktor. Ändere das mal im Header auf:

Code: Alles auswählen

cMeasurement(void);
Du hast das nämlich im Source File nochmal. Entweder Oder.

Edit: Hab die Erklärung vergessen. Du hast die Initialsierungsliste doppelt. Die gehört eigentlich zum Quellcode und nicht in den Header. Weil der Kompiler sie aber schon im Header findet, fehlen ihm die Klammern für den Rest vom Konstruktor.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Pointer auf das erste Element eines vectors zurück geben

Beitrag von Xin » Mo Jan 09, 2012 10:25 pm

Vor allem gehört kein Datentyp in die Initialisierung und "numberOfValues" muss irgendwo bekannt sein

Code: Alles auswählen

cMeasurement::cMeasurement( int numberOfValues )
: values( numberOfValues )
{}
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten