【发布时间】:2015-06-25 10:31:31
【问题描述】:
有没有办法让共享指针指向不同的内存位置,而无需释放当前所指向的内存
请考虑代码:
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
#include <iostream>
int
main()
{
int *p = new int();
*p = 10;
int *q = new int();
*q = 20;
boost::shared_ptr<int> ps(p);
// This leads to a compiler error
ps = boost::make_shared<int>(q);
std::cout << *p << std::endl;
std::cout << *q << std::endl;
return 0;
}
【问题讨论】:
-
我不明白围绕这个问题的反对票。 C++ 中的智能指针对于普通人来说并不是容易掌握和理解的概念。它不像程序未编译,关键字丢失等。问题很小,只有一段工作代码。提问的人还有什么期望?
标签: boost shared-ptr make-shared