000
05.04.2014, 01:00 Uhr
Yadgar
|
Hi(gh)!
Meine neu programmierte Klasse für Farbwert-Tripel sieht so aus:
C++: |
class SVG_color { private: short red; short green; short blue; public: SVG_color(short, short, short); void set (short, short, short); };
SVG_color::SVG_color(short r=0, short g=0, short b=0) { red = r; green = g; blue = b; }
void SVG_color::set(short r=0, short g=0, short b=0) { red = r; green = g; blue = b; }
|
mit einem Konstruktor und einer Methode für nachträgliche Zuweisungen von Werten.
Wenn ich aber die Methode aufrufe (natürlich nach vorheriger Initialisierung einer Instanz von SVG_color!):
C++: |
SVG_color fill(); // schwarz fill.set(255); // rot fill.set(255, 255); // gelb fill.set(0, 128, 255); // himmelblau
|
bekomme ich folgende Fehlermeldungen:
Code: |
yadgar@debian:/media/Raytracing/Povscn/Flags/Coats of Arms$ g++ -std=c++11 flagmaker.cc -o flagmaker flagmaker.cc: In function ‘int main(int, char**)’: flagmaker.cc:56:8: error: request for member ‘set’ in ‘fill’, which is of non-class type ‘SVG_color()’ flagmaker.cc:57:8: error: request for member ‘set’ in ‘fill’, which is of non-class type ‘SVG_color()’ flagmaker.cc:58:8: error: request for member ‘set’ in ‘fill’, which is of non-class type ‘SVG_color()’
|
Hätte ich set vielleicht inline definieren sollen? Wenn ja, warum?
Bis bald im Khyberspace!
Yadgar -- Flagmaker - ein Programmier-Blog |