为什么这段程序中,创建类BOX2的对象时参数无法传入?这段代码输出结果是a的值=1,是等于我初始值,不知道为什么。

//友元类,用类BOXa去访问类BOXb中私有成员int a
#include
using namespace std;
class BOXb //定义BOXb类
{
friend class BOXa;
private:
int a{ 1 };
int b{ 2 };

public:
BOXb(int g, int h); //创建BOXb类的有参构造函数
BOXb() = default; //创建BOXb类的默认参构造函数

};

BOXb::BOXb(int g,int h) //在BOXb类外定义有参构造函数
{
a = g;
b = h;
};

class BOXa //定义BOXa类
{
public:
BOXa(); //创建BOXa类的默认参构造函数
void vist(); //创建BOXa类中vist成员函数用来访问BOXb类中私有成员a
BOXb * box2; //创建指向BOXb类对象的指针
};

BOXa::BOXa() //在BOXb类外定义无参构造函数BOXa();
{
box2 = new BOXb; //创建类BOXb对象box2
}

void BOXa::vist() //在BOXa类外定义vist成员函数;
{
cout << "BOXb中a的值="<a << endl;
}

int main()
{
BOXb box2{ 7,9 }; //创建BOXb类对象box2
BOXa box1; //创建BOXa类对象box1
box1.vist(); //调用BOXa类对象box1中成员函数vist

system("pause");
return 0;

}