предположим, что я хочу, чтобы мои пользователи использовали только один класс, скажем, SpecialData. Теперь этот класс данных будет иметь много методов, и в зависимости от типа данных методы делают разные вещи, внутренне, но возвращают внешне похожие результаты. Поэтому мое желание иметь один «открытый» класс и другие «частные», дочерние классы, которые изменят поведение методов и т. Д.Создайте экземпляр из статического метода
Было бы удивительно проще для некоторых типов данных, которые необходимо построить чтобы сделать что-то вроде этого:
SpecialData& sm = SpecialData::new_supermatrix();
и new_supermatrix() возвращает экземпляр суперматричного, который наследуется от большинства поведения SpecialData.
мой заголовок:
static SpecialData& new_supermatrix();
мой каст:
SpecialData& SpecialData::new_supermatrix()(){
return SuperMatrix(MATRIX_DEFAULT_MAGNITUDE,1000,1239,FLOAT32,etc...);
}
Проблема заключается в том, я получаю эту ошибку, которая, вероятно, логично в силу обстоятельств:
недействительным инициализации неконстантной ссылки типа «SpecialData &» из временного типа «SpecialData»
Итак, любые идеи?
Вам нужно узнать, как работает стек. –
действительно, спасибо всем за ответы. Я думаю, что я буду придерживаться пространства имен на фабрике. – Manux