Оригинальный код, похоже, создавал путаницу, поэтому я удалил и добавил другой пояснительный код. Надеюсь, это не вызовет такой же путаницы.
Рассмотрим это как Main calss
(something like manager class
)
HPP:
private: std::vector<int>* _cache;
касты
whatever* whatever::somefunction(const String& nothing)
{
const auto newWhatever = new whatever{nothing, _cache};
return newWhatever; // not important
}
Other Class
(класс, который выполняет некоторую работу и возвращает результат)
HPP:
private: std::Vector<int> _cache;
касты:
class OtherClass
{
std::vector* _value;
std::vector _result;
public:
OtherClass(const string& nothing, std::vector<int>* cache) : _value{cache}
void calculateresult()
{
*_value = _result;
}
}
returning value from the method is impossible as per the original setup
Я бы хотел зафиксировать результат, полученный в OtherClass
, в указатель Main class
.
Цель: OtherClass
является временным, он будет уничтожен и воссоздан каждые 10 секунд один раз. Поэтому мне нужно сохранить результат этого OtherClass
и использовать его для следующего его создания. Как вы можете видеть, создание этого OtherClass
произойдет из Main class
, это как менеджер.
Когда я отлаживаю, я вижу, что для _value
назначен адрес, и разыменование может не работать, я не знаю.
Но это не удается во время назначения i, e
*_value = _result;
слева - T = QVector * и справа - QVector.
Исключение в коде: qvector.h
template <typename T>
QVector<T> &QVector<T>::operator=(const QVector<T> &v)
{
if (v.d != d) {
QVector<T> tmp(v);
tmp.swap(*this);
}
return *this;
}