gpt4 book ai didi

c++ - 为什么我不需要使用命名空间?

转载 作者:太空狗 更新时间:2023-10-29 21:19:24 27 4
gpt4 key购买 nike

所以我有以下功能:

GraSys::CRectangle GraSys::CPlane::boundingBox(std::string type, std::string color)
{
CRectangle myObject = CRectangle(color);
return myObject;
}

既然 boundingBox 是命名空间 GraSys 的一部分,我必须使用它来声明这个函数,为什么我不需要在函数内部做这个?为什么我可以只使用?为什么它让我编译时没有问题?

CRectangle myObject = CRectangle(color);

代替于:

GraSys::CRectangle myObject = GraSys::CRectangle(color);

希望我的问题没有混淆。

最佳答案

您正在实现一个在 GrasSys 的命名空间中声明的函数。当您在该函数中时,您使用声明 namespace 。

为清楚起见,请考虑:

namespace GraSys {
class CRectangle { ... };
class CPlane {
... boundingBox(...); ...
}
void example(...) { ... };
}

当你实现boundingBox时,你会在函数声明时声明的命名空间中,也就是GraSys。 CRectangle 是在 GraSys 中声明的,所以你可以直接使用它。同样,请注意,您也可以直接调用函数,因此在上面的代码中,您可以直接调用 boundingBox 实现中的示例。

关于c++ - 为什么我不需要使用命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434274/

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