我有以下课程:

class Database
{
private:
    vector<myObject*> m_vectorObj;

public:
    void addObject(myObject &passObj)
}


我正在尝试这样做:

void Database::addObject (myObject &passObj)
{
    m_vectorObj.push_back(passObj);
}


但是给我错误“没有匹配的函数要调用”,我该如何进行这项工作并传递对象并存储指针?

最佳答案

首先,问问自己是否真的需要使用指针

如果这样做,那么您有2个选择。

1:您只是在&之前缺少passObj

m_vectorObj.push_back(&passObj);
                      ^


2:更改功能(从引用到指针)

void Database:addObject (myObject *passObj)//pointer to myObject instead of reference
{
    m_vectorObj.push_back(passObj);
}




我完全不会使用指针,但是我建议您将它们封装到std::unique_ptr

关于c++ - 在C++中通过引用实现 vector 指针和传递对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27281966/

10-09 19:18