类成员函数新建和返回
如下,在newA里new出来的空间会不会在函数结束时被系统收回,这段空在主函数里还有没有效.#include <iostream.h>
class A
{
public:
A& newA();
int a;
};
A& A::newA()
{
A *p;
p=new A;
return *this;
}
void main()
{
A bb;
bb.newA();
}
return *p;那就是正确的,上述空间在main()函数中仍然有效,如可以写下面的句子:
void main() { A bb; int c,d; c=(bb.newA()).a; d=((bb.newA()).newA()).a }
#include <iostream.h> class A { public: A& newA(); int a; }; A& A::newA() { A *p; p=new A; return *p; } void main() { A bb; int i; A* q; q=&(bb.newA()); i=q->a; /*可加入其他操作*/ delete q; }