gpt4 book ai didi

c++ - C++ 中的 "Y does not name a type"错误

转载 作者:IT老高 更新时间:2023-10-28 21:37:28 24 4
gpt4 key购买 nike

我不知道要搜索什么才能找到对此的解释,所以我问。
我有这个报告错误的代码:

struct Settings{
int width;
int height;
} settings;

settings.width = 800; // 'settings' does not name a type error
settings.height = 600; // 'settings' does not name a type error

int main(){
cout << settings.width << " " << settings.height << endl;

但如果我将值赋值放在 main 中,它会起作用:

struct Settings{
int width;
int height;
} settings;

main () {
settings.width = 800; // no error
settings.height = 600; // no error

你能解释一下为什么吗?

编辑:
关于 Ralph Tandetzky 的回答,这是我的完整结构代码。你能告诉我如何像我的代码片段结构那样分配值吗?

struct Settings{
struct Dimensions{
int width;
int height;
} screen;

struct Build_menu:Dimensions{
int border_width;
} build_menu;
} settings;

最佳答案

您不能将赋值放在 C++ 中函数的上下文之外。如果您对有时看到在函数上下文之外使用 = 符号这一事实感到困惑,例如:

int x = 42; // <== THIS IS NOT AN ASSIGNMENT!

int main()
{
// ...
}

那是因为 = 符号也可以用于初始化。在您的示例中,您没有初始化数据成员 widthheight,而是为它们赋值。

关于c++ - C++ 中的 "Y does not name a type"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16938810/

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