I am having issues getting this piece of code to compile. I am compiling with Eclipse on OS X 10.6. The problem seems to occur only when using vectors. I cannot seem to use the push_back function at all. Every time I try, I get the error "expected constructor, destructor, or type conversion before '.' token". Here are a few snippets of my code:
#include <GLUT/glut.h>
#include <vector>
#include <stdlib.h>
#include <iostream>
#include <math.h>
using namespace std;
enum Colour {BLACK =0, RED=1, BLUE=2, GREEN=3, PURPLE=4, ORANGE=5, CYAN=6, BLANK=7};
class Point {
private:
GLfloat xval, yval;
public:
Point(float x =0.0, float y = 0.0){
xval=x;
yval=y;
}
GLfloat x() {return xval;}
GLfloat y() {return yval;}
};
class LinePoint {
private:
Point p;
Colour cNum;
public:
LinePoint(Point pnt = Point(0,0), Colour c = BLACK){
cNum = c;
p = pnt;
}
Point getPoint(){return p;}
Colour getColour(){return cNum;}
};
float turtleScale = 20;
Point turtlePos = Point(300./turtleScale,200./turtleScale);
LinePoint* lp = new LinePoint(turtlePos,BLACK);
vector<LinePoint*> lines;
lines.push_back(lp);
I'm not sure if this would have anything to do with how Eclipse is setup but it also seems that if I use the code located here, in place of my vector calls, it still compiles with the same error.
Here:
float turtleScale = 20;
Point turtlePos = Point(300./turtleScale,200./turtleScale);
LinePoint* lp = new LinePoint(turtlePos,BLACK);
vector<LinePoint*> lines;
... you use initializations, but this:
lines.push_back(lp);
... is a statement! It must live in a function :)
int main()
{
lines.push_back(lp);
}
... will work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With