[英]Class member initialization C++
我想在创建GameObject时初始化转换变量,但是出了点问题。 编译器说:
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();
我做错了什么?
在您的GameObject
类中,您有一个Transform
对象Transform transform;
但是编译器尚未看到Transform
类,因此它不知道它的大小或什至是什么。 您应该先定义Transform
然后再定义GameObject
而不是GameObject
然后再定义Transform
。 您可能也想在单独的头文件中分隔这些类。
旁注:您可以只做GameObject theGameObject;
太。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.