gpt4 book ai didi

c++ - 使用命名空间c++时变量不明确

转载 作者:行者123 更新时间:2023-11-30 03:15:28 26 4
gpt4 key购买 nike

坐标.h

namespace Coordinates
{
class Coordinates
{
public:
Coordinates(int x = 0, int y = 0) : x(x), y(y) {}

private:
int x;
int y;
};
}

瓷砖.h

#include "Coordinates.h"
#include <vector>

namespace Tile
{
using namespace Coordinates;

class Tile
{
private:
std::vector <Coordinates> coordTile;
};
}

在第二个标题 Tile.h 上,它表示在 std::vector <Coordinates> coordTile;Tile::Coordinates是模棱两可的。没有命名空间,程序不会给出任何错误。

最佳答案

您有一个命名空间 Coordinates 和一个类 Coordinates,并且由于您使用了 using namespace,所以这两个名称都在范围内。尽管 vector 元素类型不能是命名空间,但这在特定的编译阶段仍然是一个歧义。

您的类 Coordinates 根本不需要在命名空间 Coordinates 中。好的建议是将所有代码放入命名空间以“屏蔽”其他人的代码——您可能希望进一步将代码组织到多个命名空间中,但是将每个类放在自己的命名空间中没有任何好处,当然你不应该像这样重复使用他们的名字。

关于c++ - 使用命名空间c++时变量不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57038990/

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