myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Ungelesen 01.11.15, 16:49   #1
serking
Anfänger
 
Registriert seit: Apr 2012
Beiträge: 10
Bedankt: 0
serking ist noch neu hier! | 0 Respekt Punkte
Standard c++ hilfe

#include <iostream>



using namespace std;





class starter{



private :



int tag;

int monat;

int jahr;



public :


int getTag(){ return tag;}
int getMonat(){ return monat;}
int getJahr(){ return jahr;}
void set(int t, int m ,int j);
void get();
starter(int t, int m, int j);
};

starter :: starter(int t, int m, int j)
{
set(t,m,j);
}

void starter::get()

{ //cout<<"DATUM "<<getTag()<<"."<<getMonat()<<"."<<getJahr()<<endl ;
cout<<"DATUM "<<tag<<"."<<monat<<"."<<jahr<<endl;

}
void starter::set(int t, int m, int j)

{

if (j<1970||j>2099)

j = 1970;

if (m<1 || m>12)

m =1;

if (t<1 || t>30)

tag = t; monat = m; jahr = j;

};


int main(){

starter datum(11,10,1990);

datum.get();


return 0;

}



Nachdem kompilieren beim Ausführern des programmes

DATUM 1354673184.10.1990

Wieso zeigt er mir die Speicheradresse beim Tag an ?
serking ist offline   Mit Zitat antworten
Ungelesen 01.11.15, 21:30   #2
DuWi><er
Anfänger
 
Registriert seit: Jul 2015
Beiträge: 13
Bedankt: 4
DuWi><er ist noch neu hier! | 3 Respekt Punkte
Standard

Ist richtig!
DuWi><er ist offline   Mit Zitat antworten
Ungelesen 07.11.15, 12:06   #3
laterne2
Anfänger
 
Registriert seit: Dec 2010
Beiträge: 1
Bedankt: 0
laterne2 ist noch neu hier! | 0 Respekt Punkte
Standard

das Problem ist deine set-Methode. Wenn man die mal ordentlcih formatiert, sieht man es auch schon:

Code:
void starter::set(int t, int m, int j)
{
    if (j<1970||j>2099)
        j = 1970;

    if (m<1 || m>12)
        m =1;

    if (t<1 || t>30)
        tag = t; 

    monat = m;
    jahr = j;
};
falls die Bedingung "(t<1 || t>30)" nicht zutrifft, wird folglcih die variable "tag" nicht gesetzt und ist weiterhin nicht initialisiert. Und dadurch bekommst du als Ausgabe später eben den Wert ausgegeben, der als integer interpretiert in dem speicherbereich liegt.
laterne2 ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.


Sitemap

().