共享指针无需为 Win 类分配内存即可工作。
代码:
class Win
{
public:
void disp()
{
//Do something
}
};
int main()
{
std::shared_ptr<Win> sharedptr;///holds null pointer
sharedptr->disp();//// why its working
}
为什么它调用上面的函数而不为其分配内存。有人可以帮我解决这个问题吗?
最佳答案
尝试这样做:
#include <memory>
#include <iostream>
class Win
{
public:
void disp(){std::cout << x;}
int x=5;
};
int main()
{
std::shared_ptr<Win> sharedptr;///holds null pointer
sharedptr->disp();//// why its working
}
你不会得到 5。你可能会得到任何东西。就像评论中的人所说,这是未定义的行为。
关于c++ - 共享指针无需分配即可工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34764281/