求救!!一个关于函数返回堆对象指针的问题 帮忙的朋友给高分,up的兄弟也有分(明天下午结帖)
小弟近日看钱能的c++程序设计教程,在友元函数那章遇到一个问题。(源程序如下)
#include<iostream.h>
#include<string.h>
class student
{ public:
student(char * pname);
~student();
protected:
static student *pfirst;
student *pnext;
char name[40];
};
student * student::pfirst=0;
student::student(char * pname)
{ strncpy(name,pname,sizeof(name));
name[sizeof(name)-1]='\0';
pnext=pfirst;
pfirst=this;
}
student::~student()
{ cout<<this->name<<endl;
if(pfirst==this)
{pfirst=pnext; return; }
for(student* ps=pfirst;ps;ps=ps->next)
if(ps->next==this)
{ ps->next=pnext; return; }
}
student * fn()
{ ftudent *ps=new ftudent("jenny");
ftudent sb("jone");
return ps //就是这行有问题!!!!!!!!!!
}
void main()
{ ftudent sa("jamsa");
ftudent *sb=fn();
ftudent sc("tracey");
delete sb;
}
我的问题是在fn()函数中能不能返回ps,这个指针的作用域是从哪儿到哪儿?
请各位大哥解答。