Ich habe viele Module (C++ Klassen), die eine gemeinsame Klasse verwenden (HW_util)Wie besser schreiben dieses C++ Programm
HW_util Klasse initialisiert tatsächlich die Hardware.
Alle Module werden mit der Adresse des HW_util-Objekts initialisiert. Ich habe 30+ Module und so 30 ungerade Zeilen, die nur die Initialisierung machen, und ich finde diesen Code hässlich. Gibt es einen besseren Weg, dies zu tun?
class HW_Util
{
InitHW();
Functionality1_onHW();
Functionality2_onHW();
..
CleanupHW();
};
class Module1
{
Module1(HW_Util *util) { m_Util = util; }
..
HW_Util *m_Util;
void DoSomething()
{
//uses m_Util to do something
}
};
class Module2
{
Module2(HW_Util *util) { m_Util = util; }
..
HW_Util *m_Util;
void DoSomething()
{
//uses m_Util to do something
}
};
...
//I have around 30 such modules..
...
void main()
{
HW_Util util;
Module1 mod1(&util); //I am passing util to all these modules, and I have around 30 such modules, ugly code
Module1 mod1(&util);
Module3 mod1(&util);
Module4 mod1(&util);
Module5 mod1(&util);
util.InitHW(); //actually fill up the util
mod1.DoSomething();
mod2.DoSomething();
..
util.CleanupHW();
}
Wenn Sie den Arbeitscode verbessern möchten, fragen Sie besser bei [SE Code Review] (http://codereview.stackexchange.com/) –
Sie Code verwenden Vererbung, Vorlagen und andere C++ - Funktionen – Raindrop7
Meine Frage wurde nach SE verschoben und dann zurück hier. Ich weiß nicht, wie diese Frage nicht legitim ist. Ich kann den echten Code hier nicht hinzufügen, und es wäre zu lang. – viktorzeid