2015-11-02 2 views
0

Мне нужна помощь в определении того, как вызвать функцию-член класса, удерживаемого внутри карты.map, class, member function

В принципе у меня есть карта, содержащая объект, и я пытаюсь вызвать одну из ее функций-членов, я продолжаю получать ошибки компилятора, с которыми я не могу справиться. Вот пример кода для вызова функции, который у меня есть.

map<int, DailyReport> statContainer;  
for (auto x : statContainer) 
    { 
     if (x.first < yearAfter && x.first > year) 
     { 

      daycounter += 1; 
      fullYearHtemp += x.second.getHighTemp; 
      fullYearLtemp += x.second.getLowTemp; 
      fullYearPercip += x.second.getPercip; 
     } 
    } 

Возможно ли это? Неужели я все это неправильно?

EDIT: getHighTemp, getLowTemp и getPercip - все члены функции класса DailyReport. Мне нужно получить доступ к функциям, пока объект DailyReport находится внутри карты.

+0

ли 'getHeightTemp',' getLowPercent' и т.д. члены или функции-члены? –

+0

Извините, что не смогли уточнить, что они являются функциями-членами. – Animental

ответ

1

Должно ли это быть x.second.getHighTemp(); (обратите внимание на скобки)? Потому что getHighTemp() является функцией-членом.

+0

Ничего себе, не могу поверить, что я провел последние полтора часа в Интернете и смотрел на него только, чтобы, наконец, сдаться и прийти сюда, чтобы спросить мой первый вопрос о том, чтобы это было чем-то, что лицо-ладонь достойно очевидна. тьфу. – Animental

0

Похоже, вы хотите назвать тех, в качестве функции члена, поэтому вам нужно добавить () к их именам, что-то вроде:

map<int, DailyReport> statContainer; 
for (auto x : statContainer) 
    { 
     if (x.first < yearAfter && x.first > year) 
     { 

      daycounter += 1; 
      fullYearHtemp += x.second.getHighTemp(); 
      fullYearLtemp += x.second.getLowTemp(); 
      fullYearPercip += x.second.getPercip(); 
     } 
    }