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

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

22.01.2008, 21:09

funktion aufrufen ohne ()

wie kann man eine funktion schreiben die man ohne die klammern aufrufen kann? so wie endl oder cout?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Phili

unregistriert

2

22.01.2008, 21:14

<< und >> sind in dem Fall überladene Operatoren.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

22.01.2008, 21:18

Re: funktion aufrufen ohne ()

Zitat von »"$nooc"«

wie kann man eine funktion schreiben die man ohne die klammern aufrufen kann? so wie endl oder cout?


Beides (sowohl endl als auch cout) sind keine Funktionen.
@D13_Dreinig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

22.01.2008, 21:19

Re: funktion aufrufen ohne ()

Zitat von »"$nooc"«

wie kann man eine funktion schreiben die man ohne die klammern aufrufen kann? so wie endl oder cout?


gar nicht (zumindest im aktuellen standard C++). cout ist eine globale variable und endl ein funktionszeiger...

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

22.01.2008, 21:21

achso ist das .. schade ^^

danke für die auskunft
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

6

22.01.2008, 21:21

ist endl nicht auch nur ein Objekt?
Lieber dumm fragen, als dumm bleiben!

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

22.01.2008, 21:25

nein endl ist eine funktion.

dass das geht:

C-/C++-Quelltext

1
cout << endl;


liegt lediglich an zwei dingen:

1) es gibt folgenden operator <<:

C-/C++-Quelltext

1
ostream& operator<< (ostream& ( *pf )(ostream&));


und 2) bekommt man die adresse einer funktion auch ohne adressoperator

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

8

22.01.2008, 21:31

Du könntest höchstens ne Definition machen...

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

9

22.01.2008, 22:47

Geht net oder du nimmst klassen... aber warum willst n das machen?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

22.01.2008, 23:20

Zitat von »"Faule Socke"«

Geht net oder du nimmst klassen... aber warum willst n das machen?


Doch, das geht schon! Indirekt über die Lösung mit dem Funktionszeiger halt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
std::ostream& doubleendl( std::ostream& stream )
{
    stream.put( stream.widen( '\n' ) );
    stream.put( stream.widen( '\n' ) );
    stream.flush();

    return stream;
}

int main()
{
    std::cout << "Hallo Welt" << doubleendl << "foobar" << std::endl;
}
@D13_Dreinig

Werbeanzeige