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