scorpio_b 发表于 2016-6-13 20:13:32

请问类继承后为何很多头文件无法直接调用了呢?

这个搞了好久了,一直没解决,拜托各位帮我看看吧,谢谢啦!
这样的,我建立了一个车辆的C++工程模板,然后打算仿造WheeledVehicleMovementComponent4W,从WheeledVehicleMovementComponent这个类派生出一个名为VehicleMovementComponentNW的新类来。官方的WheeledVehicleMovementComponent4W中#include “EnginePrivate.h”可以直接在WheeledVehicleMovementComponent4W.h中调用,而我把它放在我自己的VehicleMovementComponentNW.h中却打不开,必须输入形如#include “D:/Epic Games/4.12/Engine/Source/Runtime/Engine/Private/EnginePrivate.h”的完整路径。请问这个什么原因呢?项目属性里面已经包含了路径D:/Epic Games/4.12/Engine/Source/Runtime/Engine/Private,为何还需要完整路径才能调用呢?


说明:这个工程计划用来搞一个多轮车辆的,在虚幻4官方论坛看到了老外做的类继承,可惜自己模仿不来。附上原贴地址:
https://forums.unrealengine.com/showthread.php?93866-Fixing-the-Vehicle-class-in-UE4-starting-with-NWheel-implementation&p=434618


eeooyi 发表于 2016-6-14 00:46:20

试试把项目的UEProject文件重新编译一下看看

scorpio_b 发表于 2016-6-14 08:07:55

eeooyi 发表于 2016-6-14 00:46
试试把项目的UEProject文件重新编译一下看看

谢谢!可是我并没有对源代码做出任何改变啊?另外用的是Epic Games Launcher下载的,看来只有在源码里面重新编译了

lein 发表于 2016-6-18 19:16:32

本帖最后由 lein 于 2016-6-18 19:18 编辑

把#include “EnginePrivate.h” 这行放在 #include "****.generated.h" 这行的前面(交换下现在的顺序)试试?
因为编译的时候头文件会先被UE4预处理一遍(类似QT那种)

scorpio_b 发表于 2016-6-20 00:12:53

lein 发表于 2016-6-18 19:16
把#include “EnginePrivate.h” 这行放在 #include "****.generated.h" 这行的前面(交换下现在的顺序)试 ...

谢谢提醒,这个一直注意的。

Someday 发表于 2016-6-25 15:29:56

EnginePrivate.h 不是对外用的, 它位于引擎的 Private 目录下,你用 Engine.h 代替。另外注意,不要将这个包括大量其它.h的头文件放到你的 VehicleMovementComponentNW.h 使用,这等于敞开了一扇大门。在你的头文件中声明其它类时,应该先考虑使用前置声明,其次是仅包括要声明类的.h头文件。像 Engine.h 这种仅用于 cpp 中。

scorpio_b 发表于 2016-6-26 16:25:08

Someday 发表于 2016-6-25 15:29
EnginePrivate.h 不是对外用的, 它位于引擎的 Private 目录下,你用 Engine.h 代替。另外注意,不要将这个 ...

谢谢解答。如果想调用引擎的Private目录下的一些文件,该怎么办呢?顺便问下有没有C++的自己继承出单独一个类的案例可供学习呢?官方给出的Demo都是调用已有的类啊

Someday 发表于 2016-6-28 12:03:16

Private内的.h文件比较少,你要到public目录下找include private目录下.h的头文件。
你创建一个基于C++车辆模板的工程看看吧,我记得有两套,一套是高级的车辆系统模板

scorpio_b 发表于 2016-7-4 22:13:10

Someday 发表于 2016-6-28 12:03
Private内的.h文件比较少,你要到public目录下找include private目录下.h的头文件。
你创建一个基于C++车辆 ...

嗯 我这两个的C++工程我都练习过了,用空的C++工程创建过。现在多轮车辆不会搞,用蓝图也搞不出来。根据官网的教程,做了蓝图的练习,可是蓝图多轮添加也不行,如图,不知道为何。小熊猫答应看看的,可是一直没空……:'(
烦劳someday大神帮我看看吧 谢谢啦

页: [1]
查看完整版本: 请问类继承后为何很多头文件无法直接调用了呢?