Arduino将一个对象作为参数传递给另一个类的构造函数

时间:2016-03-28 19:42:49

标签: c++ object arduino

我对此非常陌生,请原谅我,如果我说错了名字的话。我想要做的是将类的实例传递给另一个类的构造函数。我知道这些通常是在.h和.cpp文件中完成的,但对于我运行的代码似乎并不关心,但我可能会错。除了类defs和构造函数之外,我已经取出了大部分代码。

我希望在我的代码中有一些像Thermtherm这样的热敏电阻的实例,并传递给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();
}


};

1 个答案:

答案 0 :(得分:2)

重复this

参考只能初始化,不能更改。要在构造函数中使用它,就像你已经显示的那样意味着引用成员必须在构造函数中初始化

class TempController
{
  Thermistor & member;
public:
  TempController( Thermistor & t ) { member = t; }; // assignment not allowed
  TempController( Thermistor & t ) : member(t) { }; // initialization allowed
}