呼如林
依我看,主要体现在两点: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内存