KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
shared_ptr<Shape> circle(new Circle(Vec2f(0, 0), 0.1, Vec3f(1, 0, 0))); shared_ptr<Shape> rect(new Rect2f(Vec2f(0, 0), 5.0f, 5.0f, 0, Vec3f(1.0f, 1.0f, 0)) ); I'm trying to understand why the above won't compile. For Whatever reason, when I try to create an instance of Rect2f (which DOES inherit from the Shape class specified the shared_ptr template argument, just like Circle ), I get the following errors : error: expected type-specifier before 'Rect2f' error: expected ')' before 'Rect2f' Everything about the Circle shared_ptr is perfectly fine. There are no problems with it; it's only the Rect2f which is causing issues. Furthermore, the values passed into the constructor are valid. So, what could the issue be with this one? I have Rect.h included for this. For brevity's sake (and incase I missed something in that file which may be affecting this), I'll post the following: Rect.h #pragma once #include <QGLWidget> #include <GL/glext.h> #include <cmath> #include <QDebug> #include "Shape.h" #include "Vec3f.h" #include "rand.h" const int DEFAULT_SQUARE_WIDTH = 5; const int DEFAULT_SQUARE_HEIGHT = 5; typedef enum { RC_TOPLEFT, RC_TOPRIGHT, RC_BOTTOMRIGHT, RC_BOTTOMLEFT } RectangleCorner; class Rect2f : public Shape { public: Rect2f( Vec2f center = Vec2f(), float width = 4, float height = 4, float radius = 0, Vec3f color = Vec3f() ); ~Rect2f(); inline const float GetWidth( void ) const { return mWidth; } inline const float GetHeight( void ) const { return mHeight; } inline const Vec2f* GetCorner( RectangleCorner rc ) const { switch( rc ) {
Tags (comma-separated)
Save Edits
Cancel