Компилятор не распознает мой объект heatingUnit как тип класса HeatingUnit. Понятия не имею почему?
// Jimoh Ovbiagele (JAO945)
#include <iostream>
#include <stdio.h>
#include <stdbool.h>
#include "HeatingUnit.h"
class BangBangControl{
public:
HeatingUnit *heatingUnit;
int tempToMaintain;
BangBangControl(int temp, bool isOn, int initialTemp)
: heatingUnit(new HeatingUnit(isOn, initialTemp)),
tempToMaintain(temp){
}
void setTemp(int newTemp){
tempToMaintain = newTemp;
}
int getTemp(){
return tempToMaintain;
}
int update(){
int i = heatingUnit.tick();
if (i > tempToMaintain + 2) heatingUnit.turnOff();
if (i < tempToMaintain - 2) heatingUnit.turnOn();
return i;
}
int main(){
BangBangControl bBC(50, true, 0);
for(int i = 0; i < 100; i++){
std::cout << "Temp to maintain is: " << bBC.getTemp() << " Current temp is: " << bBC.update() << "\n";
}
return(0);
}
};
Я получаю этот журнал ошибок
BangBangControl.cpp: в функции-члене int BangBangControl :: update () ’:
BangBangControl.cpp: 31: ошибка: запрос на членство в 'tick' в ‘((BangBangControl *) this) -> BangBangControl :: heatingUnit’, который относится к неклассовому типу «HeatingUnit *»
BangBangControl.cpp: 32: ошибка: запрос на член 'turnOff' в ‘((BangBangControl *) this) -> BangBangControl :: heatingUnit’, который относится к неклассовому типу ‘HeatingUnit *’
BangBangControl.cpp: 33: ошибка: запрос на член 'turnOn' в Bang ((BangBangControl *) this) -> BangBangControl :: heatingUnit ’, который не относится к классу‘ HeatingUnit * ’