001
22.12.2006, 16:23 Uhr
0xdeadbeef
Gott (Operator)
|
Ngh...C mit Klassen...
Ganz direkt ist der Fehler, dass du bei scanf nicht die Adressen übergibst, und bei printf %d statt %f benutzt. Aber...scanf und printf in C++-Code zu benutzen ist äußerst unschön, und streng genommen ist der header stdio.h in C++ nicht standardkonform. Das Äquivalent aus der C-Kompatibilitätsbibliothek nennt sich cstdio, dann befinden sich die Symbole auch direkt im namespace std. So oder so, besser wäre:
C++: |
#ifdef __WIN32__ #include <cstdlib> #endif #include <iostream>
class calculator { public: void set(double x, double y); double result() const;
private: double x_, y_; };
void calculator::set(double x, double y) { x_ = x; y_ = y; }
double calculator::result() const { return x_ + y_; }
int main() { double a, b; calculator calc;
std::cout << "Zwei Zahlen eingeben: " << std::flush; std::cin >> a >> b;
calc.set(a, b); std::cout << "Summe: " << calc.result() << std::endl;
#ifdef __WIN32__ std::system("pause"); #endif }
|
Im Übrigen sieht mir das alles sehr gut in Standard-C++ behandelbar aus, also:
Bearbeitung: |
Dreckigen Hack für nutzlose Windows-IDEs eingefügt, damit du auch was damit anfangen kannst.
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 22.12.2006 um 16:28 Uhr von 0xdeadbeef editiert. |