在main函数中使用了CHorse和CPig两个类,所以需要包含这两个类的头文件,但是,这两个类都包含CAnimal的定义,编译器不知道该选择哪个,会报告重复定义的错误。这个时候就需要包含警卫。 所谓包含警卫就是用一组宏命令将头文件包起来,使其不会被重复包含,看Animal.h的例子: #ifndef ANIMAL_H #define ANIMAL_H #end...