【发布时间】:2012-09-20 17:51:10
【问题描述】:
请理解我在写这篇文章时发烧了,此外,我使用 C++ 或类是几年前的事了。
我的问题在于 g++ 编译器拒绝我调用类标识符(+ 成员说明符)和该类的实际成员。
这就是我的意思:
class window{
public:
int borderX, borderY, menu_item;
};
如果我选择调用这些成员之一(boderX、borderY、menu_item),如下所示:
window.borderX = [some value here];
我得到一个错误的回报:
错误:'.' 之前的预期不合格 ID令牌
当我查看 cplusplus 的网站时,这段代码在语法上并不错误。然而,它拒绝编译?
这是来自 cplusplus 网站的示例:
class CRectangle {
int width, height;
public:
void set_values (int, int);
int area (void) {return (width * height);}
};
CRectangle rect;
rect.set_values (3,4);
这段代码也不能编译!
它返回此错误:
错误:'rect' 没有命名类型
我不明白为什么它会返回这些错误。 Window IS 用作标识符 - 或其类型。其次,它甚至不会从教授 C++ 使用的网站本身编译代码。
我正在等待这些问题的更正。 另外,为了记录,我正在使用MingW。 Code::Blocks 和 Netbeans 产生相同的结果(是的,我知道它们是 IDE,而不是编译器。)
【问题讨论】:
-
您的
window示例需要一个对象。第二个需要一个主函数(see reproduced compiler error)。 -
第一个
window不起作用,因为您正在访问一个类型的非静态数据成员——您首先需要一个 object。CRectangle的第二个不起作用,因为您尚未定义CRectangle::set_values。 -
@ildjarn,没错,虽然这是一个链接器错误。不过,现在找到它比在它编译后只给出一个新错误要好。
-
其实他有一个对象 :) 它的窗口,他需要一个对象的实例。
-
@JonathanCruz,这是一门课。一个类的实例就是一个对象。
标签: c++ compilation mingw