我如何创建一个类并声明另一个类的变量

Vis*_*h K 0 c++ arduino

我正在尝试使用DHT传感器

WifiConfig.h

#include "DHT.h"
class WifiConfig
{
  public:
    WifiConfig();
    std::unique_ptr<DHT> dht;
    void initialize(char const *ssid, char const *psk);

}
Run Code Online (Sandbox Code Playgroud)

WifiConfig.cpp

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

void WifiConfig::initialize(char const *ssid, char const *psk) {
   dht.reset(new DHT(DHTPin, DHT11));
   dht.readTemperature(); // doesnt work
}
Run Code Online (Sandbox Code Playgroud)

以这种方式在我的班级中使用另一个班级的正确方法是什么?

jwi*_*mar 5

智能指针(如std::unique_ptr)是一个普通对象,已被编写为充当内置指针,并且通常将真实指针包裹在外层。它们通常会覆盖operator->()以提供对基础指针的访问。这使智能指针的用户能够假装他们正在使用真实指针。

因此将其更改为 dht->readTemperature()

在智能指针上使用点运算符可以使您访问智能指针对象本身的成员。