Прогулка по относительно простому шаблону C ++

Наш инструктор попросил нас пройтись по шаблону и объяснить, что делают различные его части:

Template<class T> set<T> set<T>:: setDifference(const Set<T> &that) const

Вот что у меня так далеко:

Template<class T>: declares the new template

set<T>: states the return type of our template

set<T>: pretty confused about the second set, possibly the class name?

setDifference: Calls on our setDifference function

const Set<T> &that:
Parameters of setDifference, states set<T> cannot be modified within
setDifference or put on the left hand side of the equation. "&that" references "that"memory location to use/call

const (at the end):
Our function can only be called by a const object of the class
nor can it call any non-const member functions or change member variables.

Если кто-то может исправить / добавить к тому, что у меня уже есть, я был бы очень признателен.

1

Решение

Это начало определения функции-члена setDifference вне ее тела класса

template <class T>
struct set{
//...
set setDifference( const set& that) const;
};
template<class T>
set<T> set<T>::setDifference( const set<T>& that) const
{
set<T> newInstance (...);
//implementation of setDifference: newInstance = this - that
return newInstance;
}
  • Возвращаемый тип — это недавно созданный экземпляр класса set
  • Второй набор действительно является именем класса; необходимо, потому что setDifference живет в пространстве имен set<T>
  • ты прав насчет остальных
0

Другие решения


По вопросам рекламы [email protected]