Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BOSS

Frischling

  • »BOSS« ist der Autor dieses Themas

Beiträge: 43

Wohnort: Hannover

Beruf: Autor, Mathematiker, Dozent.

  • Private Nachricht senden

1

17.11.2006, 19:58

Was haltet ihr davon...?

Hallo Herrschaften,
wie die Meisten von euch wissen, gibt es in der OOP in C++ die Ein - und Ausgabeobjekte 'cout' und 'cin'. Sie dürfen nur in einem Quelltext einer Konsole vorkommen, wenn man "iostream.h" inkludiert. In dieser Header sind 'cin' und 'cout' definiert. Wäre es realistisch, wenn ich in dieser Header diese beiden Sachen in andere Namen z.B. 'maxin' und 'maxout' umdefiniere, und gleichzeitig noch die Header selbst in "maximillian.h", sodass ich in einem Quelltext das so schreiben könnte:


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
//-----------------------------------------------------------------

// hallowelt1.cpp

#include <maximillian.h>

void main(void)
{
   int name;
   maxout << "Hallo, gib bitte deinen Namen ein:" << endl;
   maxin >> name;
   maxout << "Du heißt " << name << "." << endl;
}

//-----------------------------------------------------------------

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

17.11.2006, 20:19

ja, noch einfacher wäre es sogar mit

C-/C++-Quelltext

1
2
3
4
#include <iostream>
#define maxout std::cout

maxout << "irgendwas";

solltest du aber trotzdem nicht machen weil es der Lesbarkeit nicht gerade zuträglich ist ;)

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

3

17.11.2006, 21:22

Ich frage mich eher was du damit bezweckst?

Ich will doch nicht immer deinen Header runterladen um nen Schnipsel Hello World oder dergleichen zu kompilieren.

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

4

18.11.2006, 00:59

Naja ich sehe da auch keinen Sinn und main heißt noch immer int main() und muss einen Int zurückgeben ;)

Ich hoffe du kannst uns etwas aufklären wo der Sinn darin liegt ;)
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

5

18.11.2006, 09:48

Klar kannst du alles umdefinieren, nur pass auf das du dann C++ nicht verlernst. :D Das bringt dir rein gar nichts und wenn du anderen die Headerfile geben willst... wenn ich damit arbeiten sollte, würde ich zu erst das ganze umdefiniere rauswerfen oder die ganze file verwerfen. Wenn du alles umdefinierst weiß man am ende nicht mehr, was du eigentlich meinst und man muss jedes mal nachschaun, wie was definiert ist. Sowas ist ehr nervig als effektiv. Bleib beim Standard, es gibt eigentlich für sämtliche Datentypen(es gibt Ausnahmen..) sinnvolle define's. Ich seh keinen Sinn, wenn du dir da dein eigenes Zeug zusammenspinnen musst. Das haben dir andere schon abgenommen. :D
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

6

18.11.2006, 09:50

Wie die meisten hier ja schon gesagt haben, hängt das stark davon ab, was du am Ende damit bezwecken willst. Machen kann man das schon und zwar auf viele Wegen.

Du kannst von den Stream Objekten ableiten um dann noch ein paar eigene Funktionen dranzuprogrammieren (Decoration)... mir fällt allerdings nicht ein, was das sein könnte -- die Klassen sind schon recht vollständig.

Du könntest sie innerhalb eines eigenen Stream Objekts benutzen (Aggregation). Hier ist z.B. ein verschlüsselter Stream denkbar. Mit std::cin wird ein Klartext eingelesen den dein Stream dann erst noch verschlüsselt und schliesslich in einer Variablen ablegt.

Blos um dem Kind einen anderen Namen zu geben, sollte man sich aber wirklich nicht ins Zeug legen.

Gruss,
Rainer

PS: deine "main" Deklaration ist schon okay so... üblicherweise deklariert man aber "int main (int argc, const char** argv)", weil man einen Fehlercode ans System zurückliefern kann (0 ist Erfolg), und auch noch Kommandozeilenargumente übergeben bekommt (argc viele, argv[n] Argument n, argv[0] ist immer der Programmname)
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

BOSS

Frischling

  • »BOSS« ist der Autor dieses Themas

Beiträge: 43

Wohnort: Hannover

Beruf: Autor, Mathematiker, Dozent.

  • Private Nachricht senden

7

20.11.2006, 16:27

Zuerst...

@T-VIRUS. Also "void main(void)" gibt es und kann man auch benutzen. Wenn du mir nicht glaubst, dann sieh einfach mal unter:

Objektorientierte Programmierung in C++ nach. Oder probier es selbst.
Denn "int main ()" funzt nicht immer. Und wer hat dir gesagt, dass ein Int zurückgegeben werden muss? Ich sehe da nichts, das zurückgegeben werden muss. ;)

So und nun zu euch allen, Leute, der Sinn dieser Idee besteht darin herauszufinden und beweisen zu können, dass was man schreibt muss nicht so aussehen wie es dir vorgegeben ist. Ich denke das sind offizielle Namen, damit jeder versteht was gemeint wird, und dass jeder sich nach dem selben gemeinten Objekt richten kann. ;)

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

8

20.11.2006, 16:39

ich kenne auch mehrere main möglichkeiten...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

20.11.2006, 17:00

laut standard is main afaik vom typ int und alles andere reine gutmütigkeit des compilers...


ich denke das is der einfachste weg (suchen und ersetzen aller namen ist viel, vermutlich sogar sehr viel arbeit...)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
// maximilian.h


namespace max
{
    #include <iostream>

    using namespace std;

};


dann kannst du einfach sagen

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
#include <maximilian.h>

.
.
.

max::cout << "was ist der sinn des lebens?" << max::endl;

.
.
.



außerdem können cin und cout im quelltext jeder beliebigen anwendung vorkommen ;)

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

10

20.11.2006, 17:08

Zitat

When compiling a C++ program, GCC automatically generates the code to return zero from the main function, in case the programmer leaves that out.
"Have you tried turning it off and on again?"

Werbeanzeige