Standardkonstruktor bei Referenzübergabe wird aufgerufen...
-
Hallo,
struct rootnums { rootnums() : m_nGMain(-1), m_nProtocol(-1), m_nTextureManager(-1), m_nCamera(-1) { m_nGMain = m_nGMain; } rootnums(int nGMain, int nProtocol, int nTextureManager, int nCamera) : m_nGMain(nGMain), m_nProtocol(nProtocol), m_nTextureManager(nTextureManager), m_nCamera(nCamera) { m_nGMain = m_nGMain; }; rootnums(const rootnums& c) { m_nGMain = c.m_nGMain; m_nTextureManager = c.m_nTextureManager; m_nProtocol = c.m_nProtocol; m_nCamera = c.m_nCamera; } int m_nGMain; int m_nProtocol; int m_nTextureManager; int m_nCamera; };
CBParticleSystem(CKernel* pKernel, const rootnums& rnRootnums, const particleinfo& piInfo); // Prototyp in Klasse CBParticleSystem::CBParticleSystem(CKernel* pKernel, const rootnums& rnRootnums, const particleinfo& piInfo) { m_piInfo = piInfo; m_pDevice = *pKernel->GetGMain(m_rnRootnums.m_nGMain)->getDevice(); m_pTextureManager = pKernel->GetTextureManager(m_rnRootnums.m_nTextureManager);
rootnums rnStandard(0, 0, 0, 0); CBParticleSystem* pPartSys = new CBParticleSystem(m_pKernel, rnStandard, piInfo);
Wenn ich den Debugger auf die Zeile mit pPartSys setze, ist rnStandard mit Nullen befüllt, wie es auch sein soll.
Ich habe auch im Kopier- und Standard-konstruktor Haltepunkte gesetzt, sowie in den ersten 3 Zeilen des Konstruktors von CBParticleSystem.
Der Debugger springt in den Standardkonstruktor und befüllt alle Werte mit -1.
Im ctor von CBParticleSystem ist die const-Referenz auch mit minus-Einsen befüllt.Was soll das?
Ich gebe meine Struktur (0, 0, 0, 0) über eine konstante Referenz an die Klasse und trotzdem wird irgendwo ein neues Objekt gemacht und dessen Standard-ctor aufgerufen.Sieht hier jemand den Fehler?
Danke im Voraus,
MfG MAV
-
Problem gelöst, es lag an was anderem.