今天更深刻的认识到了通过方法返回一个对象或者数组是不可以的,因为c++在方法结束的时候,对对象跟数组资源已经进行了释放,所以再使用已经释放的资源错误是未知的,
同样如果返回的该对象或数组的指针是不行的,因为资源也被释放了,指针指向的是已经释放了的资源
那么,要怎么做呢,可以new 一个指针,因为new出来的资源,需要我们手动进行删除,在方法结束时,系统不会对其进行释放
这样就可以了, 还有就是可以通过方法参数传入一个对象引用或者对象指针,然后在方法里面对其进行操作
P getP()
{
P p;
return p;
}
同样如果返回的该对象或数组的指针是不行的,因为资源也被释放了,指针指向的是已经释放了的资源
P* getP()
{
P p;
return &p;
}
那么,要怎么做呢,可以new 一个指针,因为new出来的资源,需要我们手动进行删除,在方法结束时,系统不会对其进行释放
P* getP()
{
P* p = new P;
return p;
}
这样就可以了, 还有就是可以通过方法参数传入一个对象引用或者对象指针,然后在方法里面对其进行操作
void getP(P* p)
{
...
}
void getP(P& p)
{
...
}