Я хочу передать по ссылке мои данные в класс, где сама ссылка должна быть публичной переменной, к которой должны обращаться функции-члены. Если я объявлю свой класс и его конструктор
class max_likelihood {
public:
MatrixXd dat
max_likelihood(const Ref<const MatrixXd>& dat_in)
{dat = dat_in;}
Я получаю работающий код, но в итоге создаю копию dat
, чего я хотел бы избежать.
Я попытался сделать вместо:
class max_likelihood {
public:
const Ref<const MatrixXd>& dat;
max_likelihood(const Ref<const MatrixXd>& dat){}
Но это не работает и / или не позволяет мне получить доступ к ссылке на dat
и даже не компилируется.
На основании моих исследований я нашел этот бит из этого вопроса
Если вы хотите переназначить Ref для ссылки на другой буфер, используйте новое размещение для повторного вызова конструктора Ref. Не забудьте сначала вызвать деструктора.
Я полагаю, что это может помочь ответить на мой вопрос, но я не знаю, что означают эти инструкции на практике, поэтому мой вопрос здесь. В частности, я предполагаю, что я создаю новый экземпляр объекта Ref для передачи переданной ссылки. Может ли кто-нибудь помочь мне интерпретировать ответ на этот вопрос или предложить более элегантный способ использования Ref
объектов в классах, когда исходные данные создаются в другом месте, например, чтение из файла через main?
Любая помощь будет принята с благодарностью.