c++ Klasse. Bekomme keine Zugriff auf Methoden/Funktionen
-
Ich habe in meiner main.cpp Datei irgendwie keinen Zugriff auf meine Funktionen aus meiner Klasse in meiner h.Datei. Z.B display() funktioniert einfach nicht in meiner main.cpp Datei. Ich dachte anfangs es hat eventuell mit Zugriffsrechten zu tun, aber meine Funktionen sind doch alle public.
Oder übersehe ich irgendwas?
Liebe Grüße// meine RGB.Color.cpp Datei #include "RGB_Color.h" void RGB_Color::display() { cout << "rot: " << red << "gruen: " << green << "blau: " << blue << endl; } // meine RGB.Color.h Datei #pragma once #include <iostream> using namespace std; class RGB_Color { private: int red, green, blue; public: int red, green, blue; int get_red() const { return red; } // Getter für x1 void set_red(int a) { if(a >=0 && a <=255) red = a; } // Setter für x1 int get_green() const { return green; } // Getter für y1 void set_green(int b) { if (b >= 0 && b <= 255) green = b; } // Setter für y1 int get_blue() const { return blue; } // Getter für x2 void set_blue(int c) { if (c >= 0 && c <= 255) blue = c; } // Setter für x2 RGB_Color() { set_red(255); set_green(255); set_blue(255); } RGB_Color(int a, int b, int c) { set_red(a); set_green(b); set_blue(c); } RGB_Color set_color(int a, int b, int c) { set_red(a); set_green(b); set_blue(c); } void display(); bool input_color() { cout << "rot (0...255): ? "; int a; cin >> a; if (a >= 0 && a <= 255) { return true; } else return false; cout << "gruen (0...255): ? "; int b; cin >> b; if (b >= 0 && b <= 255) { return true; } else return false; cout << "blau (0...255): ? "; int c; cin >> c; if (c >= 0 && c <= 255) { return true; } else return false; } }; // meine main.cpp Datei using namespace std; #include <iostream> #include "RGB_Color.h" int main() { system("PAUSE"); return 0; }
-
Wenn du das so auch bei dir hast, was soll denn deiner Meinung nach geschehen?
// meine main.cpp Datei using namespace std; #include <iostream> #include "RGB_Color.h" int main() { system("PAUSE"); return 0; }
-
du musst in main ein Objekt der Klasse anlegen. Die Klasse ist nur die Kuchenform, der Kuchen ist dann das erzeugte Objekt.
also
int main() { RGB_Color rgb; rgb.display(); return 0; }
-
RGB_Color schrieb:
du musst in main ein Objekt der Klasse anlegen. Die Klasse ist nur die Kuchenform, der Kuchen ist dann das erzeugte Objekt.
also
int main() { RGB_Color rgb; rgb.display(); return 0; }
Genau das hab ich gesucht. Ich habe davor die ganze Zeit mit RGB_Color.display()
und ähnlichen Schreibweisen versucht mein Ziel zu erreichen. Heisst ich muss immer erst ein Klassenobjekt in main erstellen bevor ich mit Klassen dort arbeiten kann.
Danke;)
-
as1as schrieb:
Heisst ich muss immer erst ein Klassenobjekt in main erstellen bevor ich mit Klassen dort arbeiten kann.
Danke;)Nein, du musst Objekte erstellen, um mit Objekten zu arbeiten.
Dein Lernmaterial scheint nicht so berauschend zu sein ...
-
Wie heisst deine Datei denn?
// meine RGB.Color.cpp Datei #include "RGB_Color.h" // ... // meine RGB.Color.h Datei
Dir mag das ja egal sein, aber deinem Compiler oder Linker nicht.