Программы на C++. Форум разработчиков
-
Anonymous
Переменные участника не обновляются, когда общий указатель и объект обертывают их
Сообщение
Anonymous »
Я разработал небольшой класс: < /p>
Код: Выделить всё
class model_naive
{
private:
double param1_;
double param2_;
std::vector params_pointers_;
std::vector params_labels_;
void setParamsPointers()
{
params_pointers_[0] = ¶m1_;
params_pointers_[1] = ¶m2_;
params_labels_[0] = "param1";
params_labels_[1] = "param1";
}
public:
model_naive(double param1, double param2) : param1_(param1), param2_(param2), params_pointers_(2), params_labels_(2)
{
setParamsPointers();
}
double param1() const
{
return param1_;
}
double param2() const
{
return param2_;
}
const std::vector& parameters()
{
return params_pointers_;
}
const std::vector& parameter_labels() const
{
return params_labels_;
}
void tilt_params(const double epsilon)
{
for (auto& param : parameters())
{
*param += epsilon;
}
}
void print_params() const
{
for (const auto& [param, param_label] : std::ranges::views::zip(const_cast(this)->parameters(), parameter_labels()))
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79717190/member-variables-not-updating-when-shared-pointer-and-object-wrap-them[/url]
1753700404
Anonymous
Я разработал небольшой класс: < /p>
[code]class model_naive
{
private:
double param1_;
double param2_;
std::vector params_pointers_;
std::vector params_labels_;
void setParamsPointers()
{
params_pointers_[0] = ¶m1_;
params_pointers_[1] = ¶m2_;
params_labels_[0] = "param1";
params_labels_[1] = "param1";
}
public:
model_naive(double param1, double param2) : param1_(param1), param2_(param2), params_pointers_(2), params_labels_(2)
{
setParamsPointers();
}
double param1() const
{
return param1_;
}
double param2() const
{
return param2_;
}
const std::vector& parameters()
{
return params_pointers_;
}
const std::vector& parameter_labels() const
{
return params_labels_;
}
void tilt_params(const double epsilon)
{
for (auto& param : parameters())
{
*param += epsilon;
}
}
void print_params() const
{
for (const auto& [param, param_label] : std::ranges::views::zip(const_cast(this)->parameters(), parameter_labels()))
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79717190/member-variables-not-updating-when-shared-pointer-and-object-wrap-them[/url]