参考:https://www.geeksforgeeks.org/include-guards-in-c/
    include guard也叫 header guard,macro guard,file guard。
    它的作用就是防止头文件被重复包含。
    具体的实现方法是:
    定义一个头文件的时候,用#ifndef 的形式来定义一次宏。
    第一次包含此文件,可以正确定义宏,之后再包含此文件,因为已经定义过,所以会skip。

    1. #ifndef ANIMAL(Any word you like but unique to program)
    2. #define ANIMAL(same word as used earlier)
    3. class Animal {
    4. // Code
    5. };
    6. #endif