Ich find den fehler net, Bitte um Hilfe !!!!
-
hi leutz....
ich versuche mich seit neusten mal in dem themengebiet "Klassen" und des erste prog was ich damit mal schreiben wollte ist das er mir das datum ausgibt. da ist schon mein erstes problem ich kann irgendwie nicht auf die class zu greifen, also wenn ich dort was mit cout <<, ausgeben will bekomm ich nen doofen fehler vom compiler, von wegen bla bla is not accessible... wieso is des net zugaenglich wo ist der fehler??#include<iostream.h>
class datum
{
private:int tag;
int monat;
int jahr;public:
datum();
~datum() { cout << " Datum wird gloescht :)" << endl;}
void heute();};
datum::datum() : tag(0), monat(0), jahr(0)
{
cout << "Hier entsteht jetzt ein Datum :)" << endl;
}void datum::heute()
{datum::tag;
datum::monat;
datum::jahr;
}main()
{
datum *heute;
heute->tag = 16;cout << heute->tag << endl;
getchar();
return 0;
}fuer folgende hilfe jetz schon mal danke!!!!

mfg, keule
-
Entweder so:
int main() { datum heute; heute.tag = 16; ... }oder so:
int main() { datum* pHeute = new datum; pHeute->tag = 16; ... delete pHeute; }
-
#include<iostream> #include <conio.h> using namespace std; class datum { private: int tag; int monat; int jahr; public: void heute(int tagv,int monatv,int jahrv); void ausgabe(); }; void datum::heute(int tagv,int monatv,int jahrv) { tag = tagv; monat = monatv; jahr = jahrv; } void datum::ausgabe(){ cout << tag << ":" << monat << ":" << jahr; } int main() { datum datum; datum.heute(1,6,2006); datum.ausgabe(); getch(); return 0; }Privates kann man nicht so leicht aus main ansprechen.
-
wieso haengt man den in public noch nen buchstabe an die variable dran... .also: tag ....... int ptag oder tagv.....wozu der buchstab???
-
KeuleMitBeule schrieb:
wieso haengt man den in public noch nen buchstabe an die variable dran... .also: tag ....... int ptag oder tagv.....wozu der buchstab???
Naja warscheinlich, weil sonst ein Namenkonflikt entstanden wär...hätte man mit this aber eleganter lösen können

-
Hallo
CodeFinder schrieb:
KeuleMitBeule schrieb:
wieso haengt man den in public noch nen buchstabe an die variable dran... .also: tag ....... int ptag oder tagv.....wozu der buchstab???
Naja warscheinlich, weil sonst ein Namenkonflikt entstanden wär...hätte man mit this aber eleganter lösen können

Also so:
void datum::heute(int tag,int monat,int jahr) { this->tag = tag; this->monat = monat; this->jahr = jahr; }Finde ich auch schöner. Man kann den Parameter aber auch ein p_ voranstellen, um sie als Parameter identifizieren zu können.
chrische
-
chrische5 schrieb:
Hallo
CodeFinder schrieb:
KeuleMitBeule schrieb:
wieso haengt man den in public noch nen buchstabe an die variable dran... .also: tag ....... int ptag oder tagv.....wozu der buchstab???
Naja warscheinlich, weil sonst ein Namenkonflikt entstanden wär...hätte man mit this aber eleganter lösen können

Also so:
void datum::heute(int tag,int monat,int jahr) { this->tag = tag; this->monat = monat; this->jahr = jahr; }Finde ich auch schöner. Man kann den Parameter aber auch ein p_ voranstellen, um sie als Parameter identifizieren zu können.
chrische
Oder alle Member mit einem _ enden lassen.
-
joomoo schrieb:
Oder alle Member mit einem _ enden lassen.
Man kann sie auch
Donaudampfschiffahrtsgesellschaftskapitän
nennen
!Wollen wir den Disput über Namensgebungen von Variablen nicht beenden ?
