c++ - C++ 中的命名空间名称

标签 c++ namespaces c++-cli

我正在尝试通过以下方式在 C++ 中创建命名空间:

namespace MyCompany.Library.Myproduct {

public ref class ClassWrapper
{

};
 }

我遇到错误:

  Error 1   error C2059: syntax error : '.' ClassWrapper.h  7   1    MyCompany.Library.Myproduct 

为什么我不能拥有。在命名空间中?

编辑1

此命名空间定义在 c++/cli 中,将在 c# 代码中使用。在 C# 中,此命名空间有效,但在 C++ 中似乎无效。如何在 c++/cli 代码中定义与 c# 兼容的命名空间?

最佳答案

您不能在命名空间名称中使用点。但是,您可以嵌套命名空间。

namespace Boap
{
  namespace Lib
  {
    namespace Prod
    {
      class Llama
      {
      public:
        Llama()
        {
          std::cout << "hi" << std::endl;
        }
      };
    }
  }
};

并以这种方式实例化你的 Camel :

Boap::Lib::Prod::Llama l;

AFAIK 命名空间和类名遵循与变量相同的命名规则。 变量名不能以数字字符开头,这同样适用于类/命名空间的名称。 “.”也是如此。

编辑:以下纯属假设,因为我不了解 C# 或 Windows CLI。 将 C++ 中的嵌套命名空间(例如 Boap::Lib)转换为 C# 中的 Boap.Lib 是否有意义? 也许就这么简单。

关于c++ - C++ 中的命名空间名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17209157/

相关文章:

c++ - 概念可以与模板模板参数一起使用吗?

c++ - 系统范围的 API Hook

ruby-on-rails-3 - 在命名空间模型上使用 factory_girl_rails 和 Rspec

c++ - 允许 native C++ 组件引发 CLR 异步事件

c++ - 指向抽象类的指针

c++ - nm 符号 "U"和 "T",这是什么意思?

c# - 未使用的导入命名空间与程序效率有关系吗?

C++ 详细命名空间、匿名方法、私有(private)方法、类方法、pimpl 方法、友元类方法

c++ - 从一个 C++ 程序中调用另一个程序中的方法(进程间通信)

c++ - 我不能溢出缓冲区