我知道在c++中,struct
可以作为对象模板,我知道class
可以作为对象模板。
namespace
能否用作 Object Template ?
要清楚;
MyClass myclass;
myclass.memberFunction();
MyStruct mystruct;
mystruct.memberFunction();
你能做点什么吗:
MyNamespace mynamespace;
mynamespace.MyClass.memberFunction();
通过该语法或类似的语法。
最佳答案
根据定义,namespace
只是一个命名空间,它不是模板或任何东西的工厂,Java 中最接近的对应物是包,所以如果您正在考虑创建一个新的命名空间实例,它不可能而且没有意义,就像你不能在 Java 中创建包的实例一样。
但是如果你只是想给现有的命名空间一个别名,你可以这样做:
namespace MyNamespace {
class MyClass {
public:
static void MyStaticFunction(...) {...}
};
}
namespace mynamespace=MyNamespace;
mynamespace::MyClass::MyStaticFunction(...);
请注意,没有类实例只能调用静态成员函数。
关于c++ - 命名空间可以用作 C++ 中的对象模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27964053/