我对此很陌生,所以如果我叫错名字,请原谅我。我想做的是将一个类的实例传递给另一个类的构造函数。我知道这些通常是在.h和.cpp文件中完成的,但是对于我运行的代码来说,它似乎并不在乎,但是我可能是错的。除了类defs和构造函数之外,我已经删除了大部分代码。
我想在代码中有一些现有的Thermistor实例,例如coldtherm,并传递给Tempcontroller的构造函数,以便像在printfromthermistor函数中显示的那样调用Coldtherm。
//Thermistor Class
class Thermistor
{
int Thermpin;
public:
Thermistor(int pin)
{
Thermpin = pin;
}
double TEMPOutput()
{
return Thermpin;
}
void Update()
{
}
};
Thermistor coldtherm(1);
//Tempcontrol Class
class TempController
{
public:
TempController(Thermistor&) //Right here I want to pass in coldtherm to the Tempcontroller and be able to call functions from that class.
void printfromthermistor()
{
Thermistor.TEMPOutput();
}
};
最佳答案
this的重复项。
引用只能初始化,不能更改。如所示,在构造函数中使用它意味着必须在构造函数中初始化引用成员:
class TempController
{
Thermistor & member;
public:
TempController( Thermistor & t ) { member = t; }; // assignment not allowed
TempController( Thermistor & t ) : member(t) { }; // initialization allowed
}