我知道在c ++中,struct
可以用作对象模板,我知道class
可以用作对象模板。
可以namespace
用作Object Template吗?
要清楚;
MyClass myclass;
myclass.memberFunction();
MyStruct mystruct;
mystruct.memberFunction();
你可以按照以下方式做某事:
MyNamespace mynamespace;
mynamespace.MyClass.memberFunction();
通过该语法或类似的东西。
答案 0 :(得分:2)
根据定义,namespace
只是一个命名空间,它不是任何模板或工厂,Java中最接近的对应物是包,所以如果你想创建命名空间的新实例,那么它是不可能的没有意义,就像你不能用Java创建包的实例一样。
但是如果你只想给现有的命名空间一个别名,你可以这样:
namespace MyNamespace {
class MyClass {
public:
static void MyStaticFunction(...) {...}
};
}
namespace mynamespace=MyNamespace;
mynamespace::MyClass::MyStaticFunction(...);
请注意,只能在没有类实例的情况下调用静态成员函数。