@Lost_brain

Как правильно передавать QByteArray по двойной ссылке в функцию?

Есть такая функция:

void FileModifier::writeFile(QByteArray&& fileDataBuf)
{

}

Есть

QByteArray fileDataBuf;

Функция вызывается вот так:

writeFile(std::move(fileDataBuf));

А компилятор выдает ошибку:

Call to non-static member function without an object argument

Если пишу:

static void FileModifier::writeFile(QByteArray&& fileDataBuf)
{

}

то ошибки не возникает, почему так?
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Ошибка
Call to non-static member function without an object argument


Если добавить static, сами уже проверили - ошибка исчезает:
static void FileModifier::writeFile(QByteArray&& fileDataBuf)


Внезапно, если добавить ключевое слово static, то функция перестает быть non-static. Какая неожиданность /s

Погуглите, что ли, что static в C++ означает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽