项目场景:
在调用函数修改类的成员变量时,调试时函数退出成员变量值未改变的问题
问题描述
有一个静态对象personManer,在调用函数修改其内部的成员变量值时,函数退出调试时值没有改变。
class personManer
{
public:
personManer()
{
}
~personManer()
{
}
static personManer* getInstance()
{
static personManer m();
return &m;
}
void addPerson(const Person& name)
{
m_vecPerson.push_back(name);
}
std::vector<Person> getAllPerson()
{
return m_vecPerson;
}
private:
std::vector<Person> m_vecPerson;
}
void func()
{
Person* p =new Person();
personManer* m = personManer::getInstance();
m->addPerson(p);//这里添加后m_vecPerson的size加了1,但函数退出后没有改变,在其它地方调用personManer::getInstance()得到m_vecPerson时其值没有改变
}
解决方案:
修改项目的配置文件。将“C/C++\代码生成\运行库 ”修改为不是debug的就好了