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

时间:2019-04-23 12:58:36

标签: c++ arduino

我正在尝试使用DHT Sensor

WifiConfig.h

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

}

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
}

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

1 个答案:

答案 0 :(得分:5)

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

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

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