在另一个类的声明中将参数传递给类构造函数

Passing arguments to the class constructor in a declaration of another class

本文关键字:参数传递 构造函数 声明 另一个      更新时间:2023-10-16

我有这样的东西:

#include <iostream>
using namespace std;
class FirstClass
{
    public:
        FirstClass(int _vx) : vx(_vx) {}
        int x () {return vx;}
    private:
        int vx;
};

很明显,我必须写:

int main ()
{
    FirstClass Object1(666);
    cout << Object1.x();
    return 0;
}

一切都好。但问题是,当我想在另一个类中使用这个

#include <iostream>
using namespace std;
class FirstClass
{
    public:
        FirstClass(int _vx) : vx(_vx) {}
        int x () {return vx;}
    private:
        int vx;
};
class SecondClass
{
    public:
        FirstClass Member1(666);
};
int main ()
{
    SecondClass Object2;
    cout << Object2.Member1.x();
    return 0;
}

我甚至不能编译它。所以,我的问题是:我如何在SecondClass的声明中传递参数给FirstClass的构造函数?

必须将初始化值传递给SecondClass的构造函数中的FirstClass,如下所示:

class SecondClass:
   {
   public:
      SecondClass() : Member1(666) {}
      Firstclass Member1;
   };