【发布时间】:2022-01-24 00:48:15
【问题描述】:
我是一名 c++ 初学者,对于如何从类构造函数设置私有唯一性同时仍设法从其他公共函数访问它有点困惑。我什至应该使用唯一指针开始还是共享指针?
示例:(来自我正在从事的一个项目)
header.hpp
class PixelHandler {
private:
// don't know if this ia legal
std::unique_ptr<Ppm> ppm;
std::vector<std::vector<int>> coordList;
std::unordered_map<std::string, std::string> generatePassList(std::unordered_map<int, int>);
public:
PixelHandler(int sizex, int sizey);
PixelHandler(std::string picture);
std::unordered_map<std::string, std::string> retrievePasswordList();
void setPasswordList(std::string key, std::string password);
};
source.cpp
PixelHandler::PixelHandler(std::string picture)
{
ppm = Ppm(picture.substr(0, -4) + ".ppm");
}
【问题讨论】:
-
因为它是一个
unique_ptr,你需要构造一个它可以实际管理的对象,例如:通过std::make_unique。除此之外我不明白问题是什么,您有一个私人成员,“从其他公共功能访问它”是什么意思?
标签: c++ unique-ptr