このクラス宣言に何らかの問題があり、Dijktraの最短パスアルゴリズムのOpenGL実装用のノードを作成しようとしています。 getX()、getY()表示、ゲッツ()メソッドは、エラーが発生:OpenGL - GLfloatが認識されない
エラー:ISO C++のないタイプのUbuntu Linux上のG ++でコンパイル
イムと「のgetX」の宣言を禁止します。コマンド: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++にはいくぶん新しいので、アドバイスは良いですが、本当に知りたかったのは、なぜエラーが出るのかです。
なぜcstdlibを入れて持っているかもしれないが、あなたは、GL/gl.hまたはGL/glu.hを必要はありませんあなたは「」と「」の両方を含んでいますか? (これはあなたの問題とは関係ない;私はただ好奇心が強い。) –
Maxpm