我正在尝试通过以下方式在 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/