gpt4 book ai didi

C++ 结构和 "error: ISO C++ forbids declaration of ' .. .' with no type"

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:22:07 25 4
gpt4 key购买 nike

我正在尝试用 C++ 编写类和结构,例如:

using namespace std;

struct Position {
int x;
int y;
};

class Maze {
Position pos;
pos.x = 0;
pos.y = 0;
};

int main() {
return 0;
}

但是当我尝试编译它时出现了一些错误:

(gcc 版本 4.3.2)

10: error: ISO C++ forbids declaration of 'pos' with no type
10: error: expected ';' before '.' token
11: error: ISO C++ forbids declaration of 'pos' with no type
11: error: expected ';' before '.' token

看起来这段代码与 C++ Tutorial: Struct 中的代码几乎相同。 .

关于“错误:ISO C++ 禁止声明'...'没有类型”的其他一些帖子的回答(例如this)建议添加 namespace ,但我发现很难看看它在这里不起作用的原因是什么。

总的来说,我有以下问题:

  1. 在这种情况下,这个错误实际上意味着什么?
  2. 这个错误一般意味着什么?
  3. 为什么这段代码不起作用?
  4. 如何让它发挥作用?

如果有人能给出答案,和/或研究/阅读方向,我将不胜感激。

最佳答案

这段代码

pos.x = 0;
pos.y = 0;

需要进入一个函数。一种方法是将其放入构造函数中,例如:

class Maze {
Position pos;
public:
Maze() {
pos.x = 0;
pos.y = 0;
}
};

请注意,我公开了构造函数,否则您将无法使用 Maze 类

编辑:实际回答你的问题:

在这种情况下,这个错误实际上意味着什么?编译器不知道如何处理 pos.x = 0,因为此时它需要声明,而不是代码。

这个错误一般是什么意思?这通常意味着编译器不知道如何处理您编写的声明。

为什么这段代码不起作用?因为您将可执行代码放在声明应该去的地方。

如何让它发挥作用?请参阅上面的代码。

关于C++ 结构和 "error: ISO C++ forbids declaration of ' .. .' with no type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22704170/

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