3 回答
呼如林
TA贡献1798条经验 获得超3个赞
依我看,主要体现在两点:
1 仿制过分复制
函数调用中传值,会占用大量堆栈空间,同时过多的拷贝函数调用会降低性能。
例如有个类
class A
{
int buffer[1000000];
.....
A(const A&)....
A& operator=(const A&)....
};
void function(A a)
{
A b;
b = a;
.......
}
上面的例子中,不但会占用大量堆栈空间,而且等号与拷贝函数都影响性能。
2 动态生成内存
很多对象可能一辈子都不用构造,用指针可以做到这点。
如:
class Render
{
void InitRender()
{
int iRender = CheckDevice(); //检查最佳配置
switch(iRender)
{
case d3d9:
CreateD3D9Render(&pd9);
break;
}
}
IOpenGLRender* por;
ID3D9Render* pd9;
ID3D11Render* pd11;
IGDIRender* pgr;
};
显然,你只需要一个Render,如果不用指针,一个Render可能耗掉你上百MB内存
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
添加回答
举报
0/150
提交
取消