奇怪的指针功能参考Arduino的USB主机库

时间:2015-12-17 19:34:15

标签: c++ pointers constructor arduino usb

我正在使用Arduino library并对其所做的某个电话提出疑问。这个问题与BTD(蓝牙设备库)

有关

在受保护变量下的头文件中,它会创建一个指针:

  USB *pUsb;

在cpp:

BTD::BTD(USB *p){
  connectToWii(false),
  pairWithWii(false),
  connectToHIDDevice(false),
  pairWithHIDDevice(false),
  pUsb(p), // Pointer to USB class instance - mandatory
  /*
   *Other unrelated Code
  */
}

我只是想知道pUsb(p)的调用是什么 对于我的问题的任何问题,我道歉,因为这是我第一次提交到这个网站,我对C ++很新。我知道java,所以我理解编码概念,但我从未在一个半小时的研究之前和之后看到过这一点。谢谢您的帮助! KPitt

1 个答案:

答案 0 :(得分:0)

您没有正确复制语法,实际上是

BTD::BTD(USB *p)
: connectToWii(false),
  pairWithWii(false),
  connectToHIDDevice(false),
  pairWithHIDDevice(false),
  pUsb(p) // Pointer to USB class instance - mandatory
{
  /*
   *Other unrelated Code
  */
}

注意构造函数体之前的:。这是constructor member initializer list,它正在初始化该类的成员变量。因此这一行

pUsb(p)

USB*参数p并将其复制到成员变量pUsb。长话短说,它只是复制指向其成员变量的指针。