C++ 在另一个类头文件中声明一个类
c++ declaring a class in another class header file
#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。
相关文章:
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 在C++中声明一个函数时,它需要有函数本身的参数吗
- 是否可以同时声明一个类成员的常量/非常量?
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 声明一个带有数组的函数
- 如何声明一个标准::提升直方图的向量?提升直方图的类型是什么?
- 声明一个变量,该变量在 c++ 或 c 中具有值,当程序终止时不会被销毁
- 当我尝试在函数内声明一个函数时,它不起作用?有什么建议吗?*源代码如下*
- 为什么我不能声明一个 constexpr 本地,而一个 const 一个工作?
- 我可以使用 constexpr 函数声明一个静态数组吗?
- 我们可以在没有新实例化的情况下声明一个抽象方法来返回抽象超类中的子类对象吗
- 如何声明一个必须在C++中同时存储int和char值的2D数组
- 在 extern 中声明一个使用向量的函数 "C" {}
- 有没有办法声明一个公共静态常量,该常量将使用 constexpr 在源文件中定义(有什么区别)?
- C++ typedef 函数指针,并在一个语句中声明一个指针
- 为什么它无法在 c++ 中全局声明一个构建为 dll 文件的类?
- 如何在类中声明一个变量,该变量将跟踪已创建 c++ 的对象计数
- 我需要声明一个包含整数向量的 4x4 矩阵
- 如何在Visual Studio C++中声明一个二维字符串数组?
- 如何声明一个接受任何大小的 2D 矢量参数?