cerr in Methodendefinitionsdatei wird trotz #include<iostream> vom Compiler nicht akzeptiert!
-
High!
Habe mich mittlerweile bis zum Kapitel 5 ("Objektorientierung I") im "Breymann" durchgearbeitet und versuche gerade anhand der dortigen Listings eine Klasse für Bruchzahlen ("rational") zum Funktionieren zu bringen...
Entsprechend Breymanns Empfehlungen wird die Klassenimplementation auf eine Header- und eine Definitionsdatei verteilt. In letzterer kommt eine public-Methode "eingabe" vor:
void rational::ausgabe() const
{
cerr << "Zähler: ";
cin >> zaehler;
cerr << "Nenner: ";
cin >> nenner;
assert (nenner != 0);
}(der Eingabeprompt läuft über cerr, da ich das Testprogramm für die Klasse in eine Datei umleiten will!)
Obwohl am Beginn der Definitionsdatei iostream eingebunden wird, meldet der Compiler (gcc 3.2) einen Fehler in der entsprechenden Zeile:
'cerr' undeclared (first use this function)Das anschließende "cin" ist ihm ebenfalls unbekannt...
Was mache ich falsch?
Bis bald im Khyberspace!
Yadgar
-
namespace vermutlich nicht geöffnet
using namespace std;
-
Oder kein using benutzt.
#include <iostream> using std::cout; using std::endl; using std::cin; usind std::cerr;
-
hehejo schrieb:
Oder kein using benutzt.
#include <iostream> using std::cout; using std::endl; using std::cin; usind std::cerr;Diese Möglichkeit kannte ich noch nicht... läßt sich "using" auch verwenden, um die Größe der ausführbaren Datei zu minimieren?
Bis bald im Khyberspace!
Yadgar
-
um die Größe der ausführbaren Datei zu minimieren?
glaub wenn du keine symbolinfos zulinkst, dann nich ...
probier es doch aus :pprinzipiell solltest du eher using meiden, und an allen stellen std::cerr oder std::cin schreiben ...
Warum namespaces erfinden, wenn sie eh jeder gleich aushebelt ...
Ciao ...
-
RHBaum schrieb:
Warum namespaces erfinden, wenn sie eh jeder gleich aushebelt ...
ich nicht
