繁体   English   中英

类成员初始化C ++

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM