2015-01-15 55 views
0

,我宣佈向量OD結構我有頭文件:奇怪的數據後,在頭文件中的std ::向量聲明

#include <d3d10.h> 
#include <d3dx10.h> 
#include <vector> 
#include <fstream> 
#include <istream> 
#include <sstream> 

using namespace std; 


struct bone{ 
    string name; 
    D3DXMATRIX TransformMatrix; 
}; 

class animator 
{ 
public: 
    animator(); 
    ~animator(); 

    vector <bone> Skeletone; 

    void loadXfile(string Filename); 
}; 

一切看起來正常,但當我嘗試使用的push_back()代碼和調試,Skeletone中的數據爲無法讀取。當我使用相同類型的矢量但在本地函數中聲明時,不會發生此問題(tempvecbone)。

if (checkChar == ';'){ 
    tempvecbone.push_back(tempBone); 
    Skeletone.push_back(tempBone); 
    while (checkChar != '}')checkChar = fileIn.get(); 
} 

Link to screen from debugger

任何人都知道這是怎麼回事?

+0

你正在調試調試版本還是發佈版本? – cdhowie 2015-01-15 17:07:15

+6

不相關,但是你不應該在頭文件中使用'namespace std;' – vsoftco 2015-01-15 17:09:40

+2

不確定'D3DXMATRIX'是什麼,但是我懷疑[Rule of Three](http://stackoverflow.com/q/4172722/) 10077)的問題。 – 2015-01-15 17:11:20

回答

0

如果其他人有這個問題,它是由Visual Studio項目設置中的「最大化速度(/ O2)」優化引起的。它可以在項目屬性 - > C/C++ - >優化(現在我設置爲禁用)中進行更改。