【发布时间】:2015-01-25 10:12:37
【问题描述】:
我想知道在命名空间内写类名的真正原因。他们解决什么目的?他们包括课程还是做其他事情?非常感谢任何帮助。
namespace ns3 {
class Channel;
class SpectrumChannel;
class MyMod; ;
class NewModule : public NetDevice
{
public:
// methods and data
}
【问题讨论】:
-
搜索
forward declaration -
谢谢,这是告诉编译器我将来要使用这些类的一种方式,所以要做好准备?我很困惑,因为上面的包含文件不包括定义类(Channel、SpectrumChannel、MyMod)的文件。
-
它告诉编译器“我稍后会给你更多关于这些内容的细节,但我需要你知道它们现在存在”。在典型情况下,这意味着某处存在一个类,该类接受对这些类之一的引用或指针,但这不是实际定义内容的正确位置 - 或者类之间存在相互关系,所以类 Y 需要类 X,类 Y 以某种方式引用 X。
-
感谢 Mats,您的解释很有帮助。
标签: c++ class namespaces