【发布时间】:2011-06-29 21:13:40
【问题描述】:
这个类声明有一些问题,我试图为 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++ 有点陌生,所以任何建议都很好,但我真正想知道的是为什么我会收到错误。
【问题讨论】:
-
为什么要同时包含
<cstdio>和<iostream>? (这与您的问题无关;我只是好奇。)