我的 Visual C++ 2010 代码中有这样的内容:
struct Foo
{
Foo( int arg1, int arg2..)
{
var1=arg1;
var2=arg2;
...
};
int var1;
int var2;
...
};
struct Bar
{
Bar(){};
vector<Foo*> foos
}
vector<Bar> bars;
我正在遍历 bar,然后遍历 bar[].foos,然后对 Foo 成员做一些事情。问题是有时我会以错误的顺序获取 var1、var2... 的值。
这只发生在发布配置中;如果 Foo 构造函数如下所示,这也不会发生: Foo (arg1...):var1(arg1)...
我想了解发生了什么以及为什么。