struct - Problem

sTEk

Erfahrenes Mitglied
Ich möchte eine Neuzuweisung in einem Strukt auf ein anderes Strukt einer anderen Klasse vornehmen. Leider funktioniert das über new nicht.
Ich wollte das so machen:

Code:
// in CKlasseView.h

struct Struct2 {
  int*  test;
};

struct Struct1 {
  int*   tata;
  Struct2*  Var;
};
Struct1  m_Struct1;
/////////////////////////////////////////////////////////

// in CKlasse2.cpp
CKlasseView* Klasse= (CKlasseView*)m_handle;
Klasse->m_Struct.tata = new int[12];
Klasse->m_Struct1.Var = new Klasse->Struct2[12];  // funktioniert nicht :(

for (int z=1; z<=12; z++) 
  Klasse->m_Struct1.Var[z] = new int[4];


Wo liegt mein Denkfehler?
Wenn ich die Deklaration so (also ohne den Zeiger Klasse) in der Klasse CKlasseView mache klappt es. Ich habe leider ohne Erfolg auch schon ausprobiert, in CKlasse2 ebenfalls Struct2 zu definieren, was allerdings mit
"CKlasse2::Struct2 * kann nicht in CKlasseView::Struct2 * konvertiert werden" 'belohnt 'wird.
 
Hallo,

wenn ich dich richtig verstanden habe, sollte der Scopeoperator :: dein Problem
eliminieren:

C++:
class Foo{
	public:

		struct foo_t2{
			int c;
		};
		struct foo_t1{
			int a;
			int b;
			foo_t2* f;
		};
		foo_t1 m_var;
};
int main(){
	Foo* f = new Foo;
	f->m_var.a = 2;
	f->m_var.b = 3;
	f->m_var.f = new Foo::foo_t2;
	f->m_var.f->c = 4;
	delete f->m_var.f;
	delete f;
}

Gruß,

RedWing
 
Zurück