Я пытаюсь реализовать оператор присваивания, но продолжаю получать сообщения об ошибках:
calendar.cpp:25: error: prototype for ‘lab2::Calendar<T>& lab2::Calendar<T>::operator=(lab2::Calendar<K>)’ does not match any in class ‘lab2::Calendar<T>’
calendar.h:19: error: candidate is: template<class T> template<class K> lab2::Calendar& lab2::Calendar::operator=(lab2::Calendar<K>)
make: *** [calendar.o] Error 1
Я также сталкивался с expected constructor, destructor, or type conversion before '&'
, когда пробовал разные решения.
Календарь имеет тип даты T, то есть даты внутри календаря могут отличаться от григорианских. Но я также хочу иметь возможность назначать календарь из календаря с другим типом даты.
Вот мое заявление и реализация.
//calendar.h
template <typename T>
class calendar {
//...
template <typename K> Calendar& operator=(const Calendar<K> c_other);
//...
}
//calendar.cpp
//...
template <typename T, typename K>
Calendar<T>& Calendar<T>::operator=(const Calendar<K> c_other) {};
//...
Буду признателен за любую помощь.