如何在一个类中声明另一个类的实例

时间:2019-05-09 13:14:24

标签: c++ arduino

我是初学者,正在用arduino的c ++编写类。我在课堂上使用一堂课需要帮助。下面的代码。

MyClass.h:


class MyClass {

  public:
    boolean initialize();
  private:
    std::unique_ptr<DHT> dht; // works
    std::unique_ptr<LiquidCrystal_I2C> lcd(0x3F, 16, 2); //  error: expected identifier before numeric constant

}

MyClass.cpp:

#include "WifiConfig.h"
WifiConfig::WifiConfig() {}

boolean MyClass::initialize(){
      lcd->begin(); // invalid use of member function (did you forget the '()' ?)
   }

我如何在构造函数中声明另一个需要参数的类的实例。

1 个答案:

答案 0 :(得分:2)

对类成员变量进行内联初始化时,您需要使用大括号{}

std::unique_ptr<LiquidCrystal_I2C> lcd{new LiquidCrystal_I2C(0x3F, 16, 2)};

或使用=的“赋值”语法:

std::unique_ptr<LiquidCrystal_I2C> lcd = new LiquidCrystal_I2C(0x3F, 16, 2);

或者在构造函数中进行初始化,作为构造函数初始化程序列表的一部分。

MyClass::MyClass()
    : lcd{new LiquidCrystal_I2C(0x3F, 16, 2)}
{
}