通常需要完成以下任务:更改某物的状态,执行操作,然后将状态更改回原始状态。例如,在Win32GDI中需要更改背景颜色,然后进行一些绘图,然后再将颜色更改回来。它可以直接完成:COLORREFoldColor=SetBkColor(deviceContext,newColor);drawStuff(deviceContext);SetBkColor(deviceContext,oldColor);或通过括号类在构造函数中进行前向更改并在析构函数中进行向后更改:CBkColorSwitcherswitcher(deviceContext,newColor);drawStuff(device