int setMan(int z){
cal obj;
obj.setNum(z);
return 1;
}
Объект obj
является временным автообъектом и будет уничтожен при возврате из функции. Между прочим, функции «set» не должны возвращать значения, возвращение 1. сбивает с толку.
Если вы подключите объекты sh, то каким-то образом рассмотрите состав или объединение. Например:
// ...
class area{
public:
area(cal& obj) : obj(obj);
int setMan(int z){
obj.setNum(z);
return 1;
}
cal &obj;
};
// ...
int main(){
cal obj;
cal::area obj2(obj);
obj2.setMan(200);
obj.getNum();
return 0;
}
В любом случае, это просто искусственный пример, я не вижу причины, по которой вы делаете area
вложенным классом, причину установки значений в cal
из area
и др. c.