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 init(){
 - myHardware = hwHandler.getHardwareByName("test");
 - }
 - void doSomething(){
 - if( !myHardware ){ return; }
 - // Access myHardware...
 - printf("My hardware: %s\n", myHardware.name.c_str());
 - }
 - 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