если у вас есть функция clear (), которая очищает все элементы в массиве, используете ли вы тип void или ссылки на тип, с которым вы работаете, и возвращаете * this.
Пример.
void Vector<T>::clear() {
}
или
Vector& Vector<T>::clear(){
return *this
}
Я не совсем понимаю, когда возвращать "this", а когда использовать тип void.