所以我想更好地理解虚拟方法。 我有一个基类传感器和几个子类SensorTemp * SensorPh * SensorOrp虚拟方法和C++中的子类
class Sensor
{
public:
virtual void updateValue();
}
的子类,然后用自己的方法定义覆盖updateValue(这发生在每个子类中)
.h文件中
#include "Sensor.h"
class SensorTemp : public Sensor
{
private:
public:
};
.cpp文件
#include "Sensor.h"
#include "SensorTemp.h"
void Sensor::updateValue(){
int reading = analogRead(pinId);
float voltage = reading * 5.0;
voltage /= 1024.0;
currentVal = voltage * 100 ;
Serial.print("temp: "); Serial.println(currentVal);
}
我的问题是这个工程的第一子类的声明,尽管下面就有一个编译器错误:updateValue()......这里首先定义ld.exe:禁用放松:它不会有多重定义
所以我卡上,如果我想从每个子类不同的定义方法,我应该采取什么样的方式工作?
任何有识之士将不胜感激!
没关系啊,我误解了它是如何工作,感谢澄清。 –