Plus remember that if you create an object run-time it is subject to the rules of C++ scope.
if you want a friendly name for your instances, you could use pointers
EnergyMonitor AreaLabes[3];
EnergyMonitor* Area00 = &AreaLabes[0]; // EDITED to add address of operator!!
EnergyMonitor* Area01 = &AreaLabes[1];
EnergyMonitor* Area02 = &AreaLabes[2];
EnergyMonitor monitors[] = {Area00, Area01, Area02};
but then use dereferencing to iterate over the pointers
for(int i=0; i<=sizeof(SensorPins); i++)
{
AreaLabes[i]->current(SensorPins[i], 60); <<PROBLEM SOLVED
}
// or
Area00->someMemberFunction();