【发布时间】:2014-10-25 18:45:17
【问题描述】:
我知道每当我为一个类创建一个新对象时,该对象都会存储在内存中。我也知道,在创建该对象时,它只能在它在(范围可见性)中创建的一组大括号内访问。我需要找到一种方法来删除创建它的大括号之外的那个对象。我已经简要地查看了智能指针,它可能是我想要使用的?我假设它是,我只是不确定。如果智能指针可以满足我的需求,有人可以为我提供一个示例,说明如何使用智能指针访问创建对象之外的对象吗?谢谢:)
编辑:
我正在尝试做的示例:
class ModernWarfare2
{
//my class
ModernWarfare2();
};
DWORD XamHook(DWORD r3, DWORD r4, DWORD r5)
{
switch(XamGetCurrentTitleId())//a function that tells what game is being played
{
case Xbox360Dashboard://if i were to exit the game mw2
{
if(CODAllocated)//a boolean
{
//free the memory of the previous cod game
if(MW2Allocated)//another boolean
{
delete[] MW2;//gives me an error because i dont have access to MW2
}
}
break;
}
case COD_MW2:
{
if(!CODAllocated)
{
if(!MW2Allocated)
{
ModernWarfare2 *MW2 = new ModernWarfare2();
}
}
break;
}
}
return XamInputGetState(r3,r4,r5);
}
如何解决我的问题?
【问题讨论】:
-
“我也知道,在创建该对象时,该对象只能在创建它的大括号集中访问。”不一定。
-
我猜我在问什么,我如何在外面访问它?
-
这听起来很像XY problem。
-
我认为您需要提供一个代码示例,因为我不明白您要做什么。
-
我添加了我正在尝试做的代码示例。很抱歉缺乏视觉表现。
标签: c++ object visual-c++ memory-management