在这个类声明中遇到一些麻烦,我试图为Dijktra的最短路径算法的openGL实现创建节点。 getX(),getY(),getZ()方法导致错误:
错误:ISO C ++禁止声明'getX'没有类型
我在ubuntu linux上用g ++编译。命令:g ++ -lglut -lGLU -lGL projecttest.c
#include <cstdarg>
#include <cstdio>
#include <GL/glut.h>
#include <GL/glu.h>
#include <cstdlib>
#include <iostream>
#define kWindowWidth 800
#define kWindowHeight 600
#define NUM_NODES 3
using namespace std;
class Node {
private:
GLfloat x, y, z;
int numLinks;
Node *links[];
public:
Node(GLfloat x, GLfloat y, ...);
~Node();
GLfloat getX();
GLfloat getY();
GLfloat getZ() {return 0.0f;}
} Node;
Node nodes_g[NUM_NODES];
我认为问题出在预处理器宏中。我是openGL的新手,对c ++有些新意,所以任何建议都很好,但我真正想知道的是为什么我会得到错误。
答案 0 :(得分:8)
你需要
#include <GL/gl.h>
包含OpenGL扩展的标头之前。
答案 1 :(得分:0)
如果你有
#include <GL/glut.h>
那么你不应该需要GL / gl.h或GL / glu.h,尽管你可能需要在 GL / glut.h之前放入cstdlib