Frage zur Übung Klassen
-
Hallo zusammen,
bin neu im Forum wollte mich deshalb erst mal vorstellen. Also bin der Sergej mach gerade mein Abi nach und versuch mich gerade an der C++ Programmierung. Deshalb habe ich jetzt eine kleine Frage, was ich bei einem Programm falsch gemacht habe?#include <iostream> using namespace std; class vektor { public: double x; // x - Koordinate double y; // y - Koordinate // Konstruktor vektor() { x = 0; y = 0; } // Methode addieren void addieren(vektor v2) { x += v2.x; y += v2.y; } // Methode ausgeben void ausgeben() { cout << "(" << x << "," << y ")"; } }; int main() { vektor vekt1; vektor vekt2; vekt1.x = 1; vekt1.y = 2; vekt2.x = 10; vekt2.y = 20; // Vektor ausgeben cout << "Vektor 1: "; vekt1.ausgeben(); cout << endl; cout << "Vektor 2:"; vekt2.ausgeben(); cout << endl << endl; // 2. Vektor addieren vekt1.addieren(vekt2); // Vektor nach Addition cout << "Vektor1 nach Addition : "; vekt1.ausgeben(); cout << endl; return 0; }Hab das Programm mit Hilfe eines Buches geschrieben, aber es lässt sich nicht compilieren. Finde leider keinen Fehler drin ich hoffe ihr könnt mir weiter helfen.
ps compiler ist gcc 4.1.2
-
Hmm ist nur eine Kleinigkeit:
void ausgeben() { cout << "(" << x << "," << y ")"; }... du hast vor dem letzten ")" ein << vergessen ;P
hmm und jetzt einmal nen bissel optimiert:
class vector { double m_x; double m_y; public: vector(double x = 0.0, double y = 0.0) : m_x(x), m_y(y) {} vector& operator+=(vector const& rhs) { m_x += rhs.m_x; m_y += rhs.m_y; return *this; } vector& operator-=(vector const& rhs) { m_x -= rhs.m_x; m_y -= rhs.m_y; return *this; } const vector vector::operator+(vector const& rhs) const { return vector(*this) += rhs; } const vector vector::operator-(vector const& rhs) const { return vector(*this) -= rhs; } friend std::ostream& operator<<(std::ostream& out, vector const& data) { return (out << "(" << data.m_x << ", " << data.m_y << ")"); } };int main() { vector vec_first(1.0, 2.0); const vector vec_second(10.0, 20.0); std::cout << "Vektor 1: " << vec_first << "\n" << "Vektor 2: " << vec_second << std::endl; std::cout << "Vektor 1 + Vektor 2 = " << vec_first + vec_second << std::endl; std::cout << "Vektor 1 - Vektor 2 = " << vec_first - vec_second << std::endl; std::cin.get(); }naja aber ausoptimiert ist das nicht ^^
-
beim nächsten mal auch den fehler den der compiler ausgibt mit posten