У меня есть класс контейнера, который templatized. Я перегружаю оператор присваивания таким образом, что производные типы также могут быть назначены.
Моя проблема в том, что когда тип не совпадает, я не могу получить доступ к закрытым членам класса контейнера. Каков наилучший подход к получению доступа? Переменные-члены не могут быть доступны через публичные геттеры. Спасибо!
Пример кода:
// Note: var is private
template <class T>
Container<T>& Container<T>::operator=(const Container<T>& rhs) {
if(*this != rhs) var = rhs.var; // works for same type
return *this;
}
template <class T>
template <typename U>
Container<T>& Container<T>::operator=(const Container<U>& rhs) {
if(*this != rhs) var = rhs.var; // does NOT work for different types
return *this;
}