我想在创建游戏对象时初始化变换变量,但是出了点问题。编译说:
C3646 'transform' : unknown override specifier (line 4)
C4430 missing type specifier - int assumed. Note: C++ does not support default-int (line 4)
C3861 'Transform': identifier not found (line 5)
C2614 'GameObject' : illegal member initialization: 'transform' is not a base or member (line 5)
1. class GameObject
2. {
3. public:
4. Transform transform;
5. GameObject() : transform(Transform()) {}
6. };
7.
8. class Transform
9. {
10. public:
11. Vector3 position;
12. Vector3 rotation;
13. Vector3 dimension;
14.
15. Transform()
16. {
17. position = Vector3();
18. rotation = Vector3();
19. dimension = Vector3();
20. }
21. }
在main.cpp中,我打电话:
GameObject theGameObject = GameObject();
我做错了什么?
答案 0 :(得分:1)
在GameObject
类中,您有一个Transform
对象Transform transform;
,但编译器尚未看到Transform
类,因此它不知道它的大小或它甚至是什么。您应该定义Transform
然后GameObject
而不是GameObject
,然后Transform
。您可能也想在单个头文件中分离这些类。
旁注:
您也可以GameObject theGameObject;
。