Error C2514: 'Text': Klasse besitzt keine Konstruktoren

$nooc

Mitglied
Hi Leute.. folgendes Problem..
Ich möchte eine Klasse instanzieren, aber mein Compiler meckert den oben genannten Error..

Da die klasse im Moment noch extrem klein ist poste ich den Header und die Quelldatei:

C++:
// Header


#ifndef TEXT_H_INCLUDED
#define	TEXT_H_INCLUDED

#include <string>
#include "svgobject.h"
#include "point.h"

class Text : public virtual SVGObject
{
public:

  Text(const std::string &text, int x, int y, int font_size,
       const std::string &fill, int group_number);
   
  virtual ~Text();
  virtual void writeSVGTag(std::ostream& file);
  virtual const char* getShortName();


private:

  Text(const Text& svg_text);

  const std::string &text_;
  int x_;
  int y_;
  int font_size_;
  const std::string &fill_;
  int group_number_;
};

#endif	// TEXT_H_INCLUDED


C++:
// Quelldatei

#include "text.h"

Text::Text(const std::string &text, int x, int y, int font_size,
           const std::string &fill, int group_number) 
  : SVGObject(group_number), text_(text), 
    x_(x), y_(y), font_size_(font_size), fill_(fill)
{  
}


void Text::writeSVGTag(std::ostream &file)
{
  file << "<text x=\"" << x_ << "\" y=\"" << y_ << "\" font-size=\"";
  file << font_size_ << "\" fill=\"" << fill_ << "\">" << text_ << "</text>";
}


const char* Text::getShortName()
{
  return "tx";
}


Text::~Text()
{
}



Die instanzierung sieht wie folgt aus:

C++:
int AddText::execute()
{
  int return_val  = 0,
      font_size   = 0,
      group       = 0;

  std::string *text = NULL,
              *fill = NULL;

  Point point;

  Text *new_text;

  io_.writeText("  text? ");
  text = io_.readString();

  point = readCoords();

  io_.writeText("  font-size? ");
  font_size = io_.readInteger();


  io_.writeText("  fill? ");
  fill = io_.readString();

  io_.writeText("  group? ");
  group = io_.readInteger();

  new_text = new Text(text, point.x_coordinate, point.y_coordinate, font_size, fill, group);

  svg_document_.addSVGObject(*new_text);

  return return_val;
}



Ich finde einfach den Fehler nicht.. es wird wohl nur eine Kleinigkeit sein, aber die hält mich im Moment leider ziemlich auf. Das ist ein Projekft für die Uni und ich muss das bald mal fertigstellen.
Hoffe mir kann da jemand helfen oder mir einen Tipp geben was ich falsch mache.
Zu beachten ist vielleicht dass die Klasse "Text" von der abstrakten Klasse "SVGObject" erbt. wenn jemand den Code auch noch lesen will kann ich den gerne ebenfalls posten.

Vielen Dank für die Hilfe!
 
Zuletzt bearbeitet:
Hoffe du meintest das hier: ^^

Code:
1>------ Erstellen gestartet: Projekt: Ex2_local, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>addtext.cpp
1>c:\users\stefan\tu graz\2. semester\sep (softwareentwichklung praktikum)\hausübung\ex2\svn\ex2\addtext.cpp(73) : error C2514: 'Text': Klasse besitzt keine Konstruktoren
1>        c:\users\stefan\tu graz\2. semester\sep (softwareentwichklung praktikum)\hausübung\ex2\svn\ex2\svgdocument.h(23): Siehe Deklaration von 'Text'
1>Das Buildprotokoll wurde unter "file://c:\Users\Stefan\TU Graz\2. Semester\SEP (Softwareentwichklung Praktikum)\Hausübung\Ex2\Ex2_local\Ex2_local\Debug\BuildLog.htm" gespeichert.
1>Ex2_local - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Bei der Zeile 29 (hier) in der Funktion in der die Instanzierung erfolgt
 
Hoffe du meintest das hier: ^^
Ja. :)
Code:
1>------ Erstellen gestartet: Projekt: Ex2_local, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>addtext.cpp
1>c:\users\stefan\tu graz\2. semester\sep (softwareentwichklung praktikum)\hausübung\ex2\svn\ex2\addtext.cpp(73) : error C2514: 'Text': Klasse besitzt keine Konstruktoren
1>        c:\users\stefan\tu graz\2. semester\sep (softwareentwichklung praktikum)\hausübung\ex2\svn\ex2\svgdocument.h(23): Siehe Deklaration von 'Text'
1>Das Buildprotokoll wurde unter "file://c:\Users\Stefan\TU Graz\2. Semester\SEP (Softwareentwichklung Praktikum)\Hausübung\Ex2\Ex2_local\Ex2_local\Debug\BuildLog.htm" gespeichert.
1>Ex2_local - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Bei der Zeile 29 (hier) in der Funktion in der die Instanzierung erfolgt
Offenbar hast du eine Klasse Text in der Datei svgdocument.h deklariert. Das ist vermutlich nicht die gleiche Datei wie die text.h die du gepostet hast, oder?

Ansonsten schreib mal dazu welcher Code in welcher Datei steht. Und poste die restlichen Quelltext evtl. auch noch.

Gruß
 
Zurück