有人能解释一下下面的类定义在c++中是如何工作的吗?
类名称1::name2::name3{.}
我知道如何单独定义和使用类,但对“类名1::name2::name3”表示法以及如何使用它一无所知。
非常感谢,
发布于 2019-11-22 10:30:08
name1
,name2
是名称空间,而name3
是类的名称。名称空间可以帮助您组织代码。我从未在野外看到过class name1::name2::name3 { ... ... ... }
,尽管在这样一种情况下,当类在名称空间中进行前向声明,但在另一个名称空间中定义时,您可以使用它,例如:
namespace foo { class bar; }
class foo::bar {};
但是,这种情况并不常见,如果可能的话,您将在声明该类的名称空间中定义类,例如
namespace foo { class bar; }
// then possibly elsewhere
namespace foo { class bar {}; }
写完这篇文章后,我意识到了另一种可能,这可能比上面提到的要少一些。name1
和name2
都可以是类,例如:
class name1 {
class name2 {
class name3;
};
};
// now define name3:
class name1::name2::name3 {};
https://stackoverflow.com/questions/58992179
复制相似问题