У меня есть проблема выяснить, использовать оператор [], чтобы присвоить значение, у меня есть 2 разные ошибки,Перегрузка оператора кронштейн назначения
«двоичный„=“: ни один оператор не найден, который принимает правый операнд типа «double» (или нет приемлемого преобразования) »
Оператор« = »не соответствует этим операндам.
Я что-то упустил?
Заголовок
Class CMyVector{
public:
double operator[](const int index) const;
double & operator[](const int index);
CMyVector operator+(const CMyVector mv1);
}
каст
double CMyVector::operator[](const int index) const
{
return arr[index];
}
double & CMyVector::operator[](const int index)
{
return arr[index];
}
CMyVector CMyVector::operator+(const CMyVector mv1)
{
CMyVector *retval = new CMyVector();
retval[0] = arr[i] + mv1[i];
return *this;
}
Работал как шарм, но я просто использовал * это, как указано в ответе ниже. –
@JoachimGotzes Это совершенно другое значение и не даст вам то, что вы хотите. Обратите внимание, что Joachim удалил этот бит из своего ответа, вероятно, предположил, что вы вместо этого выполняете 'operator + =' или что-то в этом роде. – TartanLlama
Да, вы правы, но я все еще работал, если я заявляю vec = vec2 * 2; У меня есть правильные значения с vec. –