0
我想在创建游戏对象时初始化变换变量,但出了问题。编译器说:类成员初始化C++
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();
我做了什么错?
你确实应该记住,为了能够使用一个符号,它必须被声明,或者甚至可以在你使用它之前定义*。所以试着改变两个类定义的顺序,看看它是否更好。 –
[mcve]总是一个很好的问题... –
问题是GameObject类是在GameObject.h中声明的,Transform类中的Transform类是#include“Transform.h”中的 GameObject.h我不知道如何解决这个 – Gugu