今天水文一篇,出个 C++ 智能指针的面试题做个有奖竞答:
#include <memory>
class Parent
{
};
class Son : public Parent
{
}
std::map<int, std::shared_ptr<Parent>> m1;
void add(int i, const std::shared_ptr<Parent>& spParent) {
m1[i] = spParent;
///问题1: 在当前位置,spParent引用计数是多少?
}
int main()
{
{
std::shared_ptr<Son> spSon = std::make_shared<Son>();
add(1, spSon);
//问题2: 在当前位置,spSon引用计数是多少?
}
//问题3: 在当前位置,m1中的智能指针对象引用计数是多少?
return 0;
}
问题4: 上述场景的代码可以如何优化?
我已经将问题贴在代码的注释中,小伙伴们可以在评论区回答,第一位给出正确答案并给出合理解释的同学将获得如下图书一本(邮费自负哦)。

为了公平起见,所有留言暂时不放出来,会在开奖当天放出。开奖时间:下周四 (2022 年 11 月 3日 20:00)。
推荐阅读
-
如果让你重新开始学计算机,你的学习路线会是怎么选择?(文中有福利)
-
C++ 新增的 stl 容器实用方法,你知道几个?(文末赠送 C++20 书籍)
-
C++ 使用协程需要注意的问题
-
我工作九年了,谈一谈做程序员这九年
我创建了 高质量 C++ 微信交流群,想加群的小伙伴可以先加我微信
easy_coder,备注"加微信群",我拉你入群,备注不对不加哦。


