从指针向量访问成员函数?C++



假设我有一个向量、vector<Item*> vItem和一个带有成员函数 Item::setValue(); 的 Item 类。假设我使用 vItem.push_back(new Item) 填充了该向量。

现在,要通过向量中的指针访问该成员函数,vItem[0]->setValue("key"); . 是否有效?我假设是这样,但是当我使用 getValue() 函数cout成员变量时,没有返回任何新内容,只返回来自我的构造函数的默认值。

有什么想法吗?我觉得这是我的逻辑上一个愚蠢的错误,但我不确定。任何帮助将不胜感激。

编辑:

设置值代码:

void Item::setValue(string sValue)
{
        m_sValue = sValue;
}

使用私有变量:

string m_sValue;

获取值代码:

string Item::getValue()
{
    return m_sValue;
}

代码的简单版本:

void func2(vector<Item*>& vItem)
{
    vItem.push_back(new Item);
    vItem[0]->setValue("key");
}
int main(int argc, char * argv[])
{
    vector<Item*> vItem;
    func2(vItem);
    cout << vItem[0]->getValue() << endl;
    return 0;
}    

我还应该注意:一切都编译得很好(使用 c++0x 标准的 g++(,但是,setter 就是没有设置。

在该方法的实现中,您的 getValue 返回一个空,并且在getValue()后有一个不合适的分号。更改为string Item::getValue(){return m_sValue;}

最新更新