是否存在"双链接"头文件有用或必要的情况?(C++)

1 c++ header include infinity

我使用术语"双链接",因为我不知道实际的短语是什么,或者是否有一个,但假设你有两个标题head1.h和head2.h,包含这些内容:

在head1.h:

#include"head2.h"
//do stuff
Run Code Online (Sandbox Code Playgroud)

在head2.h中:

#include"head1.h"
//do stuff
Run Code Online (Sandbox Code Playgroud)

我将它想象成两个彼此相对放置的镜子,因为它不是一个无限循环,而是一些其他形式的无限进入有限的计算机(但我离题).关键是,是否存在使用这一概念或这一概念的变体有用或必要的情况?(即:我想goto可以用作即兴休息).

kdt*_*kdt 7

通常,头文件具有预处理程序语句,以防止此类事件导致无限递归:

#ifndef MY_FILE_H
#define MY_FILE_H

//do stuff

#endif
Run Code Online (Sandbox Code Playgroud)

即使有这种保护,相互包含通常也是一个坏主意.