关于使用未声明的标识符有很多主题,但没有人帮助我。 他们中的大多数都是为了ios开发,我可能很难理解。
这是我的标题(剥离问题):
#pragma once
#include "ofMain.h"
class ImageRayTracer {
public:
// empty constructor
ImageRayTracer(void);
void setHitColor(ofColor c);
private:
ofColor hitColor;
};
这是我的实施细节问题:
#include "imageRayTracer.h"
ImageRayTracer::ImageRayTracer(void) {
hitColor.set(0);
}
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
void setHitColor(ofColor c) {
//Use of undeclared identifier
hitColor = c;
}
我在构造函数中没有问题,但我在setHitColor方法中遇到问题。 为什么是这样?以及如何解决?
答案 0 :(得分:2)
您必须说setHitColor()
是ImageRayTracer
的方法,就像您对构造函数所做的那样。
void ImageRayTracer::setHitColor(ofColor c) {
//Use of undeclared identifier
hitColor = c;
}
答案 1 :(得分:2)
void setHitColor(ofColor c) {
//Use of undeclared identifier
hitColor = c;
}
尝试在全局范围内定义函数。此函数尝试将参数c
分配给未知(未声明)hitColor
。要定义成员函数,必须在其前面加上类的名称,以便编译器能够将其与类的定义相关联:
void ImageRayTracer::setHitColor(ofColor c) {
//Use of undeclared identifier
hitColor = c;
}