警告未出始化变量Box::volume

#include
using namespace std;
class Box {
private:
float lenth, width, height;//私有数据成员:length(长),width(宽),和高(height)

protected:
friend float ComVol(Box box);//保护成员函数:函数ComVol用于计算盒子的体积。

public:
float volume = 0;
Box(float len, float wid, float hei)
{ lenth = len;
width = wid;
height = hei; }
friend float SetBox(Box box);//成员函数:构造函数Box,用于设置盒子的长,宽和高三个初始数据。
friend float Show(Box box);//函数Show用于输出盒子长、宽、高和体积。

};

float ComVol(Box box) {
cout << "box的体积为:";
float volume = box.lenth * box.width * box.height;

return volume;

}

float SetBox(Box box) {
cout << "重新设置box数据(长,宽,高):" << endl;
float l, w, h;
cin >> l >> w >> h;
box.lenth = l;
box.width = w;
box.height = h;
return 0;
}

float Show(Box box) {
cout << "box的长宽高分别为:" << box.lenth << ", " << box.width << ", " << box.height<<endl;
float vo = ComVol(box);
cout << "体积为:";
return vo;
}
int main() {

Box Obj1 (5, 6, 10);

Show(Obj1);
cout << endl;
SetBox(Obj1);

Box Obj2(6, 8, 10);
Show(Obj2);
Box* p = &Obj2;
//p->Show();
cout << "Obj1和Obj2的体积之和为:" << Obj1.volume+Obj2.volume<< endl;

}
还有最后输出的结果也不对,还有p间址访问Obj2 我那个也错了

Box Obj1 (5, 6, 10);

Show(Obj1);
cout << endl;
SetBox(Obj1);这个是不是写错位置了应该写在Show(Obj1)之前

Box Obj2(6, 8, 10);
Show(Obj2);
Box* p = &Obj2;
//p->Show();
cout << "Obj1和Obj2的体积之和为:" << Obj1.volume+Obj2.volume<< endl;