Was ist "cout"?
-
Das Standard-Ausgabe-Objekt, natürlich.
Aber wieso kann ich in meinem Code einfach cout << var schreiben? Wurde da eine Klasse in der Headerdatei instanziert, oder bedient man sich da eines anderen Tricks? Ich würde nämlich gern etwas ähnliches basteln, also dass man nur eine Headerdatei includet und dann mit einem Objekt sofort loslegen kann, ohne es instanzieren zu müssen.
Oft findet man ja auch Klasse::Methode, das sind dann einfach alles statische Methoden, oder?
-
newb# schrieb:
Wurde da eine Klasse in der Headerdatei instanziert
Ja. Sind halt Instanzen einer Stream-Klasse.
newb# schrieb:
Oft findet man ja auch Klasse::Methode, das sind dann einfach alles statische Methoden, oder?
Ja.
-
Klasse::Methode() kann aber auch der Aufruf einer überschriebenen Funktion der Basisklasse sein.
-
Globale Objekte (wie cout, cin, etc.) machen aber nur Sinn, wenn sie wirklich einzigartig sind. Aber eigentlich sollte man auf globale Objekte in C++ Projekten soweit es geht verzichten. Ein anderer Ansatz wäre eine Singleton-Klasse (such einfach mal nach dem Begriff hier im Forum bzw. bei einer Suchmaschine).
-
Fellhuhn schrieb:
Klasse::Methode() kann aber auch der Aufruf einer überschriebenen Funktion der Basisklasse sein.
Wie das? Beschreibung bitte!
-
Hallo
class Base { virtual void Foo() { std::cout << "Base::Foo" << std::endl; } }; class Child : public Base { virtual void Do() { Base::Foo(); // Ruft die Originalmethode von Base auf std::cout << "Child::Foo" << std::endl; } };bis bald
akari
-
struct A{ virtual void foo(){ cout << "A::Foo..." << endl; } }; struct B : public A{ virtual void foo(){ A::foo(); cout << "B::Foo..." << endl; } };
-
Wenn Klasse ein Namespace ist, kann Klasse::Methode() auch eine normale Funktion sein.