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 ?
-
2a few questions back I answered a similar question with example arduino.stackexchange.com/questions/67170/…Juraj– Juraj ♦2019年07月17日 19:42:15 +00:00Commented Jul 17, 2019 at 19:42
-
is this a school assignment?jsotola– jsotola2019年07月17日 20:45:25 +00:00Commented Jul 17, 2019 at 20:45
-
@jsotola No it is notguyd– guyd2019年07月18日 03:10:37 +00:00Commented Jul 18, 2019 at 3:10
1 Answer 1
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) { ^
guyd– guyd2019年07月17日 19:44:00 +00:00Commented Jul 17, 2019 at 19:44 -
I upvoted this answer, and going to delete mine since it's wrong.Michel Keijzers– Michel Keijzers2019年07月17日 19:44:10 +00:00Commented Jul 17, 2019 at 19:44
-
I chose 2nd option you offeredguyd– guyd2019年07月17日 19:46:30 +00:00Commented Jul 17, 2019 at 19:46