man*_*ans 2 c++ namespaces c++-cli
我试图用以下方式在c ++中创建一个名称空间:
namespace MyCompany.Library.Myproduct {
public ref class ClassWrapper
{
};
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Error 1 error C2059: syntax error : '.' ClassWrapper.h 7 1 MyCompany.Library.Myproduct
Run Code Online (Sandbox Code Playgroud)
为什么我不能拥有.在命名空间?
此命名空间定义位于c ++/cli中,将用于c#代码.在C#中,这个命名空间是有效的,但它似乎在c ++中无效.如何在c ++/cli代码中定义c#兼容的命名空间?
您不能在名称空间名称中使用点.但是,您可以拥有嵌套的命名空间.
namespace Boap
{
namespace Lib
{
namespace Prod
{
class Llama
{
public:
Llama()
{
std::cout << "hi" << std::endl;
}
};
}
}
};
Run Code Online (Sandbox Code Playgroud)
并以这种方式实现你的骆驼:
Boap::Lib::Prod::Llama l;
Run Code Online (Sandbox Code Playgroud)
AFAIK命名空间和类名遵循与变量相同的命名规则.变量的名称不能以数字字符开头,并且同样适用于类/名称空间的名称."."也是如此.
编辑:以下是纯粹的假设,因为我不了解C#或Windows CLI.将C++中的嵌套命名空间(例如Boap :: Lib)转换为C#中的Boap.Lib是否有意义?也许它就像那样简单.