第一种情况 第二种 这两种情况都属于类的超前引用,虽然写了宏定义#pragma once,该处理方式与编译器的预处理相关,建议编写时将公共库放入pch.h中,其他自己写的头文件就不要包含了,以免进行二次包含! 解决方案 1. 将你写的头文件从pch.h中删除。 2. 各个头文件都写上#pragma once 3. 各个cpp文件分别包含其.h文件, 4. 子类包含其父类的头文件