类成员函数新建和返回
如下,在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();
}
2009-08-02 20:31
2009-08-02 22:42
2009-08-03 13:05
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;
}
2009-08-03 15:45
2009-08-03 20:23
2009-08-04 13:46