möglichst elegante Typkonvertierung



  • Hi,
    ich habe die folgenden beiden Strukturen, die ich von der einen in die andere überführen will.

    struct export_Vertex
    {
    	double kruem;
    	bool is_valid;
    	bool is_kontur;
    	bool is_pos;
    	int edge_id;
    	double point[3];
    	double normal[3];
    };
    
    struct CUSTOMVERTEX
    {
    	double kruem;
    	bool is_valid;
    	bool is_kontur;
    	bool is_edge;
    	bool is_pos;
    	bool not_used;
    	bool del_mark;
    	bool is_in;
    	bool kreum_reg[4];
    	int edge_id;
    	Vector3 point;
    	Vector3 normal;
    	//zuweisung
    	export_Vertex& operator= (const CUSTOMVERTEX& tmp_vert);
    };
    

    In der einen Struktur habe ich mir nun einen Zuweisungsoperator definiert. Leider habe ich keine Idee wie ich ich ihn jetzt genau implementiren muß. 🙄



  • Müssen es unbedingt Strukturen bleiben?
    Sonst würde ich sagen, das ist ein klasischer Fall für Klassen-Vererbung.



  • Frank++ schrieb:

    Müssen es unbedingt Strukturen bleiben?
    Sonst würde ich sagen, das ist ein klasischer Fall für Klassen-Vererbung.

    Also es wäre schön, wenn es so bleiben würde, das ich die Struktur über ne dll rausgeben möchte.

    Aber die Idee mit der Klassenvererbung sollte auch bei Strukturen funktionieren, wie hattest du Dir das in etwa vorgestellt?



  • Vorschlag:

    struct _vector
    {
    	double a;
    	int b;
    	float c;
    };
    
    struct CustomVector : _vector
    {
    	long d;
    	long e;
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	CustomVector cv;
    	cv.a = 0.0;
    	cv.b = 5;
    	cv.c = 1.1F;
    	cv.d = 6;
    	cv.e = 7;
    
    	_vector v = cv;
    
    	return 0;
    }
    


  • Hmmmm ok,
    ich habe einen Fehler gemacht. 😞

    Das Vector3 aus CUSTOMVERTEX ist auch eine Klasse, in der die Vektoroperationen definiert sind. Da bekomme ich bei Deiner Methode Die Meldung, daß ich nicht von Vector3* nach double[3] umwandel kann.


Anmelden zum Antworten