我有C++ project。我在这个项目上工作,自学了如何用C ++构建一个半现实的程序。它从网站递归下载内容。
每次下载都有一个要下载的内容的URL,以及引荐来源的URL(或从中提取内容的页面的URL)。
除非是第一个网址,否则总会有推荐人。我一直在作弊,只是将第一个URL视为自己的推荐人。我最近更改了URL类,使其具有空白(或空)表示。这感觉就像是黑客。
有没有办法在没有的情况下用C ++表示可选对象:
答案 0 :(得分:5)
你可以使用boost :: optional。 boost是备受尊重的第三方图书馆;通常被视为新stl函数的原型:请参阅Ralph的回答std :: optional可用于新的C ++。
答案 1 :(得分:5)
如果您有C ++ 14编译器,请使用std::optional
模板。如果不是,您可以使用boost::optional
或std::unique_ptr
。你无法避免使用指针和浪费无效对象的空间。 std::optional
将包含可选对象,std::unique_ptr
显然会指向它。