通过引用传递[C++],[Qt]

The*_* do 4 c++ qt

我写了这样的东西:

class Storage
{
public:
    Storage();
    QString key() const;
    int value() const;
    void add_item(QString&,int);
private:
    QMap<QString,int>* my_map_;
};

void Storage::add_item(QString& key,int value)//------HERE IS THE SLOT FOR ADDING
{
   *my_map_[key] = value;
}
Run Code Online (Sandbox Code Playgroud)

当我试图通过以下方式添加项目时QMap:

class Dialog : public QDialog
{
    Q_OBJECT
public:
    Dialog(QWidget* = 0);
public slots:
    void add_item()
    {
        strg_->add_item(ui->lineEdit->text(),ui->spinBox->value());//---HERE I'M "PASSING" TWO OBJECTS: QString AND int
        ui->lineEdit->clear();
    }

private:
    Ui::Dialog* ui;
    Storage* strg_;
};  
Run Code Online (Sandbox Code Playgroud)

我收到错误:

error: no matching function for call to 'Storage::add_item(QString, int)
note: candidates are: void Storage::add_item(QString&, int)
Run Code Online (Sandbox Code Playgroud)

我怎么想QString通过ref 发送.其他然后我现在这样做?谢谢.

小智 10

add_item应该使用"const QString&"而不是"QString&"作为参数.