I have a class named timeOut dealing with timeout tasks.

I'm to write a sketch, common for Sonoff basic and Sonoff Dual, meaning that I may have 1 task for Basic and 2 tasks for Dual.

Declaring instances looks like:

timeOUT timeOut_SW0("SW0",TIMEOUT_SW0);
timeOUT timeOut_SW0("SW1",TIMEOUT_SW1);

for code simplicity I'd rather create an array of references and call it using a for loop:

timeOUT TO[]={timeOut_SW0,timeOut_SW1};

is it the right way to call it as a reference ?


You can't. The C++ language doesn't support arrays of references. You have the choice to either create an array of objects:

timeOUT TO[] = {timeOUT("SW0",TIMEOUT_SW0), timeOUT("SW1",TIMEOUT_SW1);}

or an array of pointers:

timeOUT *TO[] = { &timeOut_SW0, &timeOut_SW1 };
  • timeout_Switch:243:34: error: request for member 'remain' in 'TO[i]', which is of pointer type 'timeOUT*' (maybe you meant to use '->' ?) if(TO[i].remain()>0) { ^ – Guy . D Jul 17 '19 at 19:44
  • I upvoted this answer, and going to delete mine since it's wrong. – Michel Keijzers Jul 17 '19 at 19:44
  • I chose 2nd option you offered – Guy . D Jul 17 '19 at 19:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.