@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)
{

}

то ошибки не возникает, почему так?
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 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++ означает.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы