Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Hardware {
- public:
- std::string name;
- };
- class HardwareHandler {
- public:
- Hardware* getHardwareByName(std::string name) {
- for (auto &hardware : hardwares) {
- if ( hardware.name == name ) {
- return &hardware;
- }
- }
- return nullptr;
- }
- private:
- std::vector<Hardware> hardwares;
- };
- inline HardwareHandler hwHandler;
- class A {
- public:
- void doSomethingWithHardware(){
- myHardware = hwHandler.getHardwareByName("test");
- if( !myHardware ){ return; }
- // Access myHardware...
- printf("My hardware: %s\n", myHardware.name.c_str());
- }
- private:
- Hardware* myHardware = nullptr;
- };
- inline A a;
- // Példa 1.
- // Minden iterációban elkérjük a pointert ( teljesítményromlás )
- int main(){
- while(true){
- a.doSomethingWithHardware();
- }
- }
- // Példa 2.
- // Itt nem kell minden iterációban elkéri a pointert viszont
- // ha megváltozik a handler vektora akkor invalid lesz a pointer és nem nullptr
- int main(){
- a.init();
- while(true){
- a.doSomething();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment