美文网首页
为什么C++的头文件需要做防卫式声明?

为什么C++的头文件需要做防卫式声明?

作者: 哈煌 | 来源:发表于2020-03-30 18:07 被阅读0次

防止同一个头文件被包含多次而导致重复定义。

举个例子:如果没有防卫式声明

// 头文件 A.h

class A{};

// 头文件 B.h

#include "A"

using namespace std;

class B{};

// main.cpp

#include "A"

#include "B"

using namespace std;

int main()

{

    B b;

    reutrn 0;

}

编译出错,Redefination of 'A'

为什么会出现这样的情况??

在编译阶段,编译器会把头文件展开。此时main.cpp中的代码如下:

class A{};

calss A{};

class B{};

int main()

{

    B b;

    return 0;

}

相关文章

  • 文件声明

    文件声明 头文件防卫式声明 头文件的防卫式声明可以防止头文件被反复引入。如果一个头文件被反复引入,在编译的过程中会...

  • 为什么C++的头文件需要做防卫式声明?

    防止同一个头文件被包含多次而导致重复定义。 举个例子:如果没有防卫式声明 // 头文件 A.hclass A{};...

  • (GeekBand)规范的编程

    一个程序的基本形式: 头文件,主程序,标准库。 1. 防卫式声明。 头文件中应具有防卫式声明。防止重复引用内容,造...

  • C++笔记第一周(Boolan)

    C++笔记第一周(Boolan) 头文件的防卫式声明: 函数在class body里定义完成则默认inline 函...

  • GeekBand C++面向对象高级编程(上) 笔记&心得 1

    1.头文件防卫式声明 方式1:#ifndef XXX#define XXX 代码段#endif 使用防卫...

  • Boolan C++面向对象高级编程(上)第一周

    c++头文件 防卫式声明 本周目标 完成一个复数的类 一个class包含一个class head和一个class ...

  • GeekBand-笔记-01

    一、C++程序设计风格 1、过程式程序设计 2、基于对象 3、面向对象 4、泛型 二、头文件的防卫式声明 1、#i...

  • c++第一周笔记

    本周课程一开始先介绍了C++的一些基本概念,比如头文件的防卫式声明,、class的声明、模版的一些基本概念等等。下...

  • 头文件之防卫式声明

    在看各种源码的时候,经常在头文件中看到这样的写法 开始我也不知道为什么要这么写,后来看得多了,就查了查,发现它是对...

  • Boolan Week1笔记

    (1)头文件的防卫式声明: #ifndef __XXX__#define __XXX__…#endif (2)cl...

网友评论

      本文标题:为什么C++的头文件需要做防卫式声明?

      本文链接:https://www.haomeiwen.com/subject/loavuhtx.html