Hi, I'm having trouble with the destructors of a derived class from a base class, here are the codes
Base Class of Asteroid.h
Derived Class AsteroidNode.hCode:#ifndef ASTEROID_H #define ASTEROID_H #include <QPainter> using std::string; class Asteroid { public: Asteroid *aNext; virtual float x_data(void) const = 0; virtual float y_data(void) const = 0; virtual string strType_data(void) const = 0; virtual int radius_data(void) const = 0; virtual int vertice_A(void) const = 0; virtual int vertice_B(void) const = 0; virtual ~Asteroid() = 0; }; #endif
AsteroidNode.cppCode:#ifndef ASTEROIDTYPE1_H #define ASTEROIDTYPE1_H #include <iostream> #include <QPainter> #include <cstdlib> #include "Asteroid.h" using std::string; class AsteroidType1 : public Asteroid { public: AsteroidType1(string); AsteroidType1(string,float,float); ~AsteroidType1(); float x_data(void) const; float y_data(void) const; string strType_data(void) const; int vertice_A(void) const; int vertice_B(void) const; int radius_data(void) const; private: float x; float y; string aType; }; #endif
Error I had :Code:#include "AsteroidType1.h" // Default Constructor AsteroidType1::AsteroidType1(string strType) { aType = strType; x = 9; aNext = NULL; } // Alternative constructor AsteroidType1::AsteroidType1(string strType, float x_data, float y_data) { aType = strType; x = x_data; y = y_data; aNext = NULL; } AsteroidType1::~AsteroidType1() { } // Get X value float AsteroidType1::x_data(void) const { return x; } // Get Y value float AsteroidType1::y_data(void) const { return y; } string AsteroidType1::strType_data(void) const { return aType; } int AsteroidType1::radius_data(void) const { return 1; } int AsteroidType1::vertice_A(void) const { return 1; } int AsteroidType1::vertice_B(void) const { return 1; }
Any ideas? I've yet to add anything inside the destructor function because I haven't finish my work yet.Code:AsteroidNode.o: In function `AsteroidNode::AsteroidNode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, float, int, int, int)': AsteroidNode.cpp:(.text+0x167): undefined reference to `Asteroid::~Asteroid()' AsteroidNode.o: In function `AsteroidNode::AsteroidNode()': AsteroidNode.cpp:(.text+0x211): undefined reference to `Asteroid::~Asteroid()' AsteroidNode.o: In function `AsteroidNode::AsteroidNode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, float, int, int, int)': AsteroidNode.cpp:(.text+0x2c7): undefined reference to `Asteroid::~Asteroid()' AsteroidNode.o: In function `AsteroidNode::AsteroidNode()': AsteroidNode.cpp:(.text+0x371): undefined reference to `Asteroid::~Asteroid()' AsteroidNode.o: In function `AsteroidNode::~AsteroidNode()': AsteroidNode.cpp:(.text+0x3d7): undefined reference to `Asteroid::~Asteroid()' AsteroidNode.o:AsteroidNode.cpp:(.text+0x41b): more undefined references to `Asteroid::~Asteroid()' follow collect2: ld returned 1 exit status make: *** [game] Error 1



LinkBack URL
About LinkBacks



