bitte helft mir habe schon viele gefragt und keiner wusst warum...
-
... wieso kann ich den keine private variable ausgeben!!! Hat das was mit dem copyconstructor zu tun!!
will die private variable int sendeLeistung über void Handy::mehrSendeleistung() ausgeben, eigentlich will ich die sendeleistung da erhöhen aber er lässt mich nicht damit arbeiten und sagt mir immer: 'sendeLeistun': nicht deklarierter Bezeichner!!
hier mein header und meine cpp und meine main!
hier die header:
#pragma once class Handy { private: char* name; int sendeLeistung; float akkuLadung; int akkuKapazitaet; float akkuSpannung; public: Handy(int eineSendeleistung, int eineAkkukapazitaet, char* einName); Handy(); ~Handy(void); void mehrSendeleistung(); void wenigerSendeleistung(); void beginnGespraech(); void beendeGespraech(); void wait(double seconds); };hier die cpp:
#include "Handy.h" #include <iostream> using namespace std; Handy::Handy(int eineSendeleistung, int eineAkkukapazitaet, char* einName) : sendeLeistung(eineSendeleistung), akkuKapazitaet(eineAkkukapazitaet), name(einName) { //sendeLeistung = eineSendeleistung; //akkuKapazitaet = eineAkkukapazitaet; //name = einName; } Handy::Handy() { } Handy::~Handy(void) { cout << "Sendeleistung: " << sendeLeistung << endl << "Akkukapazitaet: " << akkuKapazitaet << endl << "Name des Handy's: " << name << endl << endl; } void mehrSendeleistung() { //int sdl; //sdl = sendeLeistung; cout << "Sendeleistung neu: " << sendeLeistung << endl; // sendeLeistung=sendeLeistung < 2000 ? sendeLeistung +=100 : sendeLeistung; } void wenigerSendeleistung() { } void beginnGespraech() { } void beendeGespraech() { } void Handy::wait(double seconds) { }hier meine kleine main:
#include <iostream> #include "Ladestation.h" #include "Handy.h" #include <string> using namespace std; int main() { Handy mobil(200,100,"Nokia e65"); Ladestation loadstation("Nas",100); mobil.mehrSendeleistung(); //mobil.mehrSendeleistung(); return 0; }
-
Du musst vor die Memberfunktionen auch noch ein "Handy::" setzen, nach dem Typ, direkt vor den Namen. Quasi "void Handy::mehrSendeleistung()". Sonst wärs ja eine freistehende Funktion und keine Funktion der Klasse :p
-
Für Dumme, ersetze das:
void mehrSendeleistung() { //int sdl; //sdl = sendeLeistung; cout << "Sendeleistung neu: " << sendeLeistung << endl; // sendeLeistung=sendeLeistung < 2000 ? sendeLeistung +=100 : sendeLeistung; }mit dem:
void Handy::mehrSendeleistung() { //int sdl; //sdl = sendeLeistung; cout << "Sendeleistung neu: " << sendeLeistung << endl; // sendeLeistung=sendeLeistung < 2000 ? sendeLeistung +=100 : sendeLeistung; }
-
anfänger110 schrieb:
... bitte helft mir habe schon viele gefragt und keiner wusst warum...
Bist Du sicher, dass das ein aussagekräftiger Threadtitel ist ?
Oder bist Du sicher, dass jeder in diesem Forum jeden Thread anklicken möchte ?Gruß,
Simon2.