基本上是这样的:
Car 和 Truck 都派生自 Vehicle 类。
车.h
#include "Vehicle.h"
class Car : public Vehicle {
//blah blah blah
Run Code Online (Sandbox Code Playgroud)
卡车.h
#include "Vehicle.h"
class Truck : public Vehicle {
//blah blah blah
Run Code Online (Sandbox Code Playgroud)
主程序
#include "Car.h"
#include "Truck.h"
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我在那里有 #include 行时,我在 Truck 上收到类重新定义错误(由于它第二次调用 Vehicle),但是当我删除它时,我有“{ token”之前的预期类名。
我得到了 Main -> Car -> Vehicle Main -> Truck -> Vehicle(重新定义)
会导致错误。
但是如果我从 Truck 中删除 #include "Vehicle.h" 它也会导致另一个错误,它需要一个类名。
正如@ErikW 指出的那样,您需要使用包含守卫。请参阅此处和此处。
#ifndef FOO_H // This needs to be unique in each header
#define FOO_H
... code goes in here ...
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |