今天水文一篇,出个 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)。