struct Temp
{
CString one;
CString two;
};
class Foo
{
public:
Temp obj;
void somewhere();
}
void Foo::somewhere()
{
void* pData = static_cast<void*>(&obj);
OwnMethod(pData); // void OwnMethod(void*);
}
Run Code Online (Sandbox Code Playgroud)
问题是:我应该obj在堆上创建还是这种情况不危险(传递本地类对象指针)?
如果OwnMethod(pData)将指针存储在somwhere以供以后使用,则一旦Foo::somewhere()被调用的对象被销毁,以后就不再使用了.
如果OwnMethod(pData)只访问指向的数据,那么您是安全的.