Хочу создать класс, объектам которого можно было бы передавать данные посредством операции <<
Пишу код
class MyCryptographicHash : public QCryptographicHash
{
public:
MyCryptographicHash(Algorithm method);
void addData(const QString &data );
friend MyCryptographicHash& operator<< (MyCryptographicHash &obj, const QString &value);
private:
QByteArray _data;
};
MyCryptographicHash& operator<<(MyCryptographicHash &obj, const QString &value) {
obj.addData(value);
return obj;
}
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
MyCryptographicHash *hash = new MyCryptographicHash(QCryptographicHash::Sha1);
QString a = "string";
hash << a;
qDebug() << "HASH: " << hash1->result();
}
Но получаю ошибку:
error: no match for 'operator<<' in 'hash << a'
Примечание:
Проблема была в том, что я вместо
MyCryptographicHash hash(QCryptographicHash::Sha1);
писал
MyCryptographicHash *hash = new MyCryptographicHash(QCryptographicHash::Sha1);
Получалось, что нужно было писать в случае, что я описал
(*hash) << a;
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.