我正在尝试使用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
}
以这种方式在我的班级中使用另一个班级的正确方法是什么?
答案 0 :(得分:5)
智能指针(如std::unique_ptr
)是一个普通对象,已被编写为类似于内置指针,并且它们通常将真实指针包裹在外层。它们通常重写operator->()
以提供对基础指针的访问。这样,智能指针的用户就可以假装他们正在使用真实指针。
因此将其更改为dht->readTemperature()
在智能指针上使用点运算符可以使您访问智能指针对象本身的成员。