C ++错误 - C2228,标识符未被识别为类

时间:2011-01-15 22:52:11

标签: c++

以下是相关代码:

Canvas.cpp


    #ifndef CANVAS
    #define CANVAS

    #include "graphicsDatatypes.h"

    class Canvas
    {
    private:

        // Current and next points to draw to
        struct cartesianPoint currentPoint, nextPoint;

    public:

        Canvas::Canvas() { numLinesDrawn = 0; };
        Canvas::~Canvas();  

        struct cartesianPoint getCurrentPoint() { return currentPoint; };

        void setCurrentPoint(int x, int y)
        {
            currentPoint.x = x;
            currentPoint.y = y;
        }


    };

#endif

的main.cpp


#include "glut-3.7.6-bin\glut.h"
#include "Canvas.cpp"

// Window size
int winWidth, winHeight;

// User's drawing space - current maximum of 4000 lines
Canvas userDrawSpace();

void callbackMouse(int button, int state, int x, int y)
{
    userDrawSpace.setCurrentPoint(x, y);
}

我得到的错误是 - 错误C2228:'。setCurrentPoint'的左边必须有class / struct / union

知道为什么吗?该类定义非常明确,包括应该只是引入文本。当我用鼠标悬停在它上面时,Visual Studio认识到Canvas是一个类,所以我不知道发生了什么。感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:6)

该行

Canvas userDrawSpace();

看起来它应该是创建Canvas对象,但事实上它声明了一个名为userDrawSpace的函数返回一个Canvas对象:-(。

这是C ++中非常常见的问题。

摆脱()它应该没问题。