Как объявить экземпляр другого класса в одном классе - PullRequest
1 голос
/ 09 мая 2019

Я новичок и пишу класс на C ++ для Arduino. Мне нужна помощь с использованием одного класса в моем классе. Код ниже.

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 '()' ?)
   }

Как я могу объявить экземпляр другого класса, который требует params в конструкторе.

1 Ответ

2 голосов
/ 09 мая 2019

При выполнении встроенной инициализации переменной члена класса необходимо либо использовать фигурные скобки {}:

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)}
{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...