gpt4 book ai didi

c++ - C++ 命名空间子句的功能是否与 using 子句一样,因为它解决了不明确的范围?

转载 作者:行者123 更新时间:2023-11-28 07:09:15 25 4
gpt4 key购买 nike

假设我有一个名为 ModuleObject 的类型,它在另一个文件中声明,并且该类型位于 Module 命名空间中。然后假设我有一个另一个文件,它使用命名空间子句将其他名称引入命名空间,如下所示:

namespace Module { 
....

当我在第二个文件中引用 ModuleObject 类型时,哪个是正确的?

namespace Module { 
Module::ModuleObject mo;

或者,由于我声明了“namespace Module”,范围是否会由编译器自动确定?

ModuleObject mo;

我不确定命名空间子句是否像 using 命名空间子句一样起作用,因为它将范围解析为声明的命名空间。

最佳答案

范围将由编译器确定 - 只要您在第二个文件中包含原始文件,例如。

// ModuleObject.h

namespace Module
{
class ModuleObject
{
};
}

// SecondFile.h

#include "ModuleObject.h"

namespace Module
{
ModuleObject obj;
}

顺便说一句,在询问之前尝试真的那么难吗?

关于c++ - C++ 命名空间子句的功能是否与 using 子句一样,因为它解决了不明确的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21275165/

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