gpt4 book ai didi

c++ - 编译器似乎拒绝成员之前的类标识符初始化

转载 作者:太空宇宙 更新时间:2023-11-04 15:24:15 25 4
gpt4 key购买 nike

请理解,我在写这篇文章时发烧得很厉害,此外,自从我使用 C++ 或与此相关的类以来,已经有好几年了。

我的问题在于 g++ 编译器拒绝了我对类标识符(+ 成员说明符)和该类的实际成员的调​​用。

我的意思是:

class window{
public:
int borderX, borderY, menu_item;
};

如果我选择调用这些成员之一(boderX、borderY、menu_item),如下所示:

window.borderX = [some value here];

返回错误:

error: expected unqualified-id before '.' token

当我查看 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);

此代码也无法编译!

它返回这个错误:

error: 'rect' does not name a type

我不明白为什么会返回这些错误。 Window IS 用作标识符 - 或其类型。其次,它甚至不会编译来自教授 C++ 使用的网站本身的代码。

我正在等待这些问题的纠正。另外,为了记录,我正在使用 MingW。 Code::Blocks 和 Netbeans 产生相同的结果(是的,我知道它们是 IDE,而不是编译器。)

最佳答案

'window' 定义类,但您需要创建该类的实例才能使用它的非静态成员和方法。

您可以在堆栈上创建一个实例,

window w;
w.borderX = [some value here];

或者在堆上创建一个,

window *w = new window();
w->borderX = [some value here];

关于c++ - 编译器似乎拒绝成员之前的类标识符初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com