在另一个类中使用类的实例

Rob*_*yen 0 c++

这是我正在尝试做的简化版本

class Firstclass
    {
    public:
    Firstclass(int x)
        {
        //do things with x;
        }
    };

class Secondclass
    {
    public:
    Secondclass()
        {
        Firstclass a(10);
        }

    void func()
        {
        //Do things with a
        }

    private:
    Firstclass a;
    };
Run Code Online (Sandbox Code Playgroud)

所以我有一个类(Firstclass),带有一个带有int参数的构造函数.现在我想在另一个类(Secondclass)的构造函数中创建该类的实例.

线条

private:
Firstclass a;
Run Code Online (Sandbox Code Playgroud)

如果我只是变量而不是类,我会做什么:首先提到它,以便我可以在别处使用它(例如在函数func()中).这似乎不适用于类,因为编译器不理解Secondclass的构造函数应该做什么.

我该怎么做呢?

0x4*_*2D2 6

通过member-initializer列表初始化它:

Secondclass() : a(10) { }
Run Code Online (Sandbox Code Playgroud)

这是必需的,因为Firstclass没有默认构造函数.此外,使用函数声明对带参数的类内初始化进行模糊处理,因此您可以在类主体中执行此操作.在C++ 11中,这是通过聚合初始化来解决的:

Firstclass a{10};
Run Code Online (Sandbox Code Playgroud)

  • 它是必需的原因是因为`Firstclass`没有默认的构造函数. (2认同)