C++ 我需要为嵌套类定义标题保护吗?

Posted

技术标签:

【中文标题】C++ 我需要为嵌套类定义标题保护吗?【英文标题】:C++ Do i need to define header guards for nested classes? 【发布时间】:2017-03-17 00:42:50 【问题描述】:

请看给定的例子:

#ifndef OUTER_H
#define OUTER_H

class Outer

    class Inner
    
    public:
        Innner();
    ;

;

#endif

我的问题是:我需要在某个地方为我的 Inner 类创建一个标头保护,还是只为整个文件创建一个?

【问题讨论】:

标头保护是针对整个头文件的,而不是针对单个类的。 哦,我明白了,谢谢 =) 【参考方案1】:

由于您的主要标头保护包含所有内容,并且我假设这是一个 .h 文件,这意味着它仅包含声明(或至少应该包含声明),然后是守卫被守卫。所以简而言之,不,你不需要额外的守卫。

【讨论】:

以上是关于C++ 我需要为嵌套类定义标题保护吗?的主要内容,如果未能解决你的问题,请参考以下文章

C++拾遗(十三)友元和嵌套类

VST C++ 嵌套类 - 构造和包含

使用 void_t 和受保护的嵌套类的基于 SFINAE 的检测

C++ 私有嵌套抽象类

从外部类 C++ 正确调用嵌套类中的函数

C++ Primer 5th笔记(chap 19 特殊工具与技术)嵌套类