在openframeworks中使用未声明的标识符

时间:2013-10-14 22:22:55

标签: c++ openframeworks

关于使用未声明的标识符有很多主题,但没有人帮助我。 他们中的大多数都是为了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方法中遇到问题。 为什么是这样?以及如何解决?

2 个答案:

答案 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;
}