Есть ресурс: "ааа", тип которого "ААА".«aaa» управляется shared_ptr, и мы можем получить его слабый_ptr с помощью функции:
std::weak_ptr<AAA> get_aaa_weakPtr();
Теперь код client_code хочет посетить «aaa» и передать «aaa» в его child_functions.Вот так:
void mainFunc(){
std::shared_ptr<AAA> sPtr = get_aaa_weakPtr().lock();
assert( sPtr );
// use sPtr
// ...
childFuncA( /* also_need_aaa */ );
childFuncB( /* also_need_aaa */ );
childFuncC( /* also_need_aaa */ );
}
какой тип параметра мне выбрать в child_functions?weak_ptr?или shared_ptr?