繁体   English   中英

C ++:声明对象时“不允许使用不完整的类型”-原因是什么?

[英]C++: “incomplete type is not allowed” when declaring an object - What is the cause?

以下代码是由一位JUCE管理员提供的,在他的Mac上,他说它可以运行,但是对我来说,“私有”中的对象声明中“不允许输入不完整的类型”。

我无法理解错误的原因。

class LabeledSlider : public GroupComponent

{
    public:
    LabeledSlider (const String& name)
    {
        setText (name);
        setTextLabelPosition (Justification::centredTop);
        addAndMakeVisible (slider);
    }

    void resized() override
    {
        slider.setBounds (getLocalBounds().reduced (10));
    }

    Slider slider 
    { 
        Slider::RotaryHorizontalVerticalDrag, Slider::TextBoxBelow 
    };

 private:
    LabeledSlider frequency { "Frequency" };
    LabeledSlider level { "Level" };

};

Visual Studio错误的屏幕截图

我的Visual Studio Community 2017完全是最新的,因此我不确定为什么它对他有用而不对我有用。

这是什么问题? 我如何解决它?

如果您知道此修复程序是特定的,或者真的很清楚您的意思,请

多谢你们。 你帮我弄清楚了。

“对象不能包含自身,那将是无限递归。”

就像我说的那样,我是新手,所以虽然现在我懂了,但这对我来说并不常见。

我应该把这一部分:

 private:
    LabeledSlider frequency { "Frequency" };
    LabeledSlider level { "Level" };

在synth应用程序的部分中的类声明之外,在该对象发生合成的实际编码部分“ MainContentComponent”期间定义了其他对象。

将其移到那里,现在可以使用了。

对不起,愚蠢的问题。 感谢您的澄清。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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