我有一个问题,通常我会理解为什么会这样,我没有在main方法中声明该函数。但是类本身包含.h文件,该文件具有此方法的原型,因此我对为什么它不在主要功能范围内感到有些困惑。
using namespace std;
#include "Solar.h"
int main(){
initializeGL();
Stars *Alpha = new Stars(5.0);
Planets *Awe = new Planets(.6,2,30,"Awe",0.0,0.0,0.0);
paintGL();
return 0;
}
void Solar::initializeGL(){
glShadeModel(GL_SMOOTH);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIV
....
}
稍后还有一个函数paintGL(),这是头文件
class Solar {
public:
void initializeGL();
void resizeGL(int width, int height);
void paintGL();
.....
private:
.....
};
我不是C ++的佼佼者,所以将不胜感激。
这是错误
Solar.cpp:4: error: declaration of âvoid Solar::initializeGL()â outside of class is not definition
Solar.cpp:5: error: declaration of âvoid Solar::paintGL()â outside of class is not definition
Solar.cpp: In function âint main()â:
Solar.cpp:8: error: âinitializeGLâ was not declared in this scope
Solar.cpp:11: error: âpaintGLâ was not declared in this scope
最佳答案
Solar
是一个类,initializeGL
和paintGL
是成员函数。如果要使用它们,则必须创建Solar
的实例。
Solar solar;
solar.initializeGL();
// ...more
solar.paintGL();
阅读成员函数:http://msdn.microsoft.com/en-us/library/fk812w4w.aspx