Получение ошибки: незаконное использование этого TypeName Это operator+
перегрузка:C++ бросает исключение незаконно
template<class T>
inline Vec<T> Vec<T>::operator+(const Vec& rhs) const
{
int vecSize = 0;
if (rhs.size() == 0 || size() == 0) {
throw ExceptionEmptyOperand;
}
if (rhs.size() != size()) {
throw ExceptionWrongDimensions;
}
else
{
Vec<T> vec;
vecSize = rhs.size();
for (int i = 0; i < vecSize;i++) {
vec.push(*this[i] + rhs[i])
}
return vec;
}
Это объявление о перегрузке operator[]
:
T& operator[](unsigned int ind);
const T& operator[](unsigned int ind) const;
Первый был чтобы иметь возможность изменять векторные значения.
Это то, что я пытался сделать, и получаю сообщение об ошибке, как описано выше:
template<class T>
inline T& Vec<T>::operator[](unsigned int ind)
{
list<T>::iterator it = vals_.begin();
if (size() == 0) {
throw ExceptionEmptyOperand;
}
if (size() < ind) {
throw ExceptionIndexExceed;
}
for (unsigned int i = 0; i<ind; i++) {
++it;
}
return *it;
}
это дает мне эту ошибку: ExceptionEmptyOperand незаконное использование такого типа, как выражение
Что вы пробовали для реализации? С какими проблемами вы столкнулись? – P0W
вы забыли вернуть результат в 'operator +' – user463035818
где вы храните фактические значения? – user463035818