#ifndef PC
#define PC
#include <iostream>
#include <string>
#include "../include/worm.h"
#include "../include/dns.h"
class DNS; // Forward decleration
class PC
{
....(there is all the declration here)
};
#endif
为什么会有“类DNS”?编写代码的目的是什么?(如果您需要更多代码来理解需求\目的,请告诉我)
我们需要更多代码,特别是DNS的头文件,但我假设dns.h也包含pc.h。当您有两个彼此包含的头文件时,它们必须各自向前声明另一个类。
但是,如果dns.h不包含pc.h,则不需要前向声明。
我对它的理解涉及循环依赖。想象一下我正在浏览dns.h,然后看到pc.h。我需要知道您所依赖的内容,因此现在开始学习pc.h。我现在看到dns.h,但是我就在那里,所以我继续浏览pc.h。如果您在PC课堂上使用DNS,我怎么知道什么是DNS?在点击该类声明之前,我停止浏览dns.h。
解决方案是预先在pc.h中声明该类。这给了我足够的信息来知道DNS是某种类,并且当我看到DNS类型的参数,变量等时也不会感到惊讶。我现在有信心DNS将在以后定义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句