error C2734: 'preis': Konstantes Objekt muss initialisiert werden, wenn es nicht extern ist.

Gucky

Top Contributor
Hallo liebes Java Forum,
ich versuche zur Zeit in C++ ein kleines Verwaltungsprogramm zu schreiben. Mit Java keine große Sache, mit C++ schon eher.

Ich versuche mit dem Elementinitialisierer vier const Attribute einer Klasse zu initialisieren. Zwei davon (Zeiger) funktionieren auch. Die beiden anderen wollen nicht. Es kommt zu der Fehlermeldung im Betreff.
Wenn ich die beiden allerdings auch zu Zeigern mache, funktioniert alles. Aber ich will keine Zeiger verwenden, sondern normale Variablen, da der Inhalt von Zeigern nach Verlassen des Blocks ja gelöscht werden, so sie nicht mit new allokiert wurden. Dafür müsste ich ansonsten noch einen Weg finden. Das die beiden anderen eigentlich mitgelöscht werden, ist mir bewusst. Dafür muss ich noch einen Weg finden. Unten findet ihr den Code. Ich hoffe, ihr könnt mir helfen.

KauflistenElem.h
Java:
#pragma once
#include <iostream>

class KauflistenElem
{
public:
	KauflistenElem(const char* art, const char* name, double preis,int anzahl);
	~KauflistenElem(void);
	const double getPreis() const;
	const char* getArt() const;
	const char* getName() const;
	const int getAnzahl() const;
	void toString() const;


private:
	const double preis;
	const char* art;
	const char* name;
	const int anzahl;
};

KauflistenElem.cpp
Java:
#include "KauflistenElem.h"

const double preis;
const char* art;
const char* name;
const int anzahl;

KauflistenElem::KauflistenElem(const char* art, const char* name, const double preis, const int anzahl)
	: art(art), name(name), preis(preis), anzahl(anzahl)
{
}



KauflistenElem::~KauflistenElem(void)
{
}

const char* KauflistenElem::getArt() const{
	return art;
}

const char* KauflistenElem::getName() const{
	return name;
}

const double KauflistenElem::getPreis() const{
	return preis;
}

const int KauflistenElem::getAnzahl() const{
	return anzahl;
}

void KauflistenElem::toString() const{
	std::cout << art << " " << name << " " << preis << "€ " << anzahl << std::endl;
}
 

Ähnliche Java Themen

Neue Themen


Oben