2012-04-06 30 views
0

Ich habe ein Problem mit meinem Code. Eigentlich funktioniert es, aber ich möchte es sauber machen, um es richtiger zu machen.C++: Array von Koordinaten?

Also habe ich eine Klasse Coord, die ein float x und ein float y enthält.

Der Konstruktor ist:

void Coord::Coord (float x,float y) 
{ 
this->x = x; 
this->y = y; 
} 

ich alle Punkte erstellen, die ich auf diese Weise brauchen:

Coord pt1(0,1); 
Coord pt2(20,0); 
... 
Coord pt61(12,14); .... ` 

Nachdem ich haben eine Reihe von einigen Punkten zu machen, für exemple die fünfte fünf Punkte werden in einem Array zugewiesen, 4 andere Punkte in einem anderen Array, 2 andere Punkte in einem anderen Array ...

Coord pts_weakhealth[3] = {pt1,pt2,pt3}; 

Dieses Array, werde ich als Argumente für den Konstruktor einer Klasse zum Beispiel geben:

Sef health(pts_weakhealth,3); 
Sef strength(pts_weak,4);` 

ich einige Sef in der gleichen Art und Weise erstellen werden und dann ein Array machen von ihnen

Sef spec[2] = {health,strength}; 

und eine Klasse Universum enthält einige sef:

Universe hlth(spec); 

Sie können sich vorstellen, dass, wenn ich viele Punkte haben, eine Menge sef, es ist ein viel schmutziger Code ...

Wie kann ich das verbessern? um meinen Code besser ...

+1

Welche Version von welchem ​​Compiler verwenden Sie? – ildjarn

+3

Dies gehört wahrscheinlich auf codereview.stackexchange.com – Beta

+0

Warum sind alle Ihre Punkte nicht in einem Array? Wenn Sie pt1, pt2, pt3, ... haben, ist das ein deutliches Zeichen dafür, dass Sie ein Array benötigen. –

Antwort

1

Es ist schwer zu sagen, was hier gefragt ist wird ... aber hier sind ein paar Vorschläge, die Sie in die richtige Richtung bekommen sollte:

  1. nicht hart -kodieren Sie die Punktinitialisierungen. Schreiben Sie eine Routine an Lesen Sie die Punkte aus einer Konfigurations- oder Initialisierungsdatei.

  2. Speichern Sie sie nicht in einem Array. Erstellen Sie Vektoren oder Listen oder Deques von Punkten basierend auf Informationen in der Konfigurationsdatei.

  3. Verwenden Sie die Konfigurationsdatei, um Ihre Sef s und Universe s von zuvor definierten Punkten aufzubauen.

+0

danke es ist auch die Lösung, die ich gewählt habe – nicoooogna