从函数返回指针

C++ Returning pointer from function

本文关键字:指针 返回 函数      更新时间:2023-10-16

这个问题似乎已经被问过/回答过很多次了,但我仍然觉得我不确定。

这两种方法有区别吗?是否都可以使用?

SomeClass* GetSomeClass(){
    SomeClass *sc = new SomeClass();
    // do something with sc
    return sc;
}

SomeClass* GetSomeClass(){
    SomeClass *sc = new SomeClass();
    // do something with sc
    SomeClass *rSc;
    rSc = sc;
    return rSc;
}

是的,它们完全一样。

第一个代码:

SomeClass pointer sc = new SomeClass();
return SomeClass pointer sc

第二个代码

SomeClass pointer sc = new SomeClass();
SomeClass pointer rSc = SomeClass pointer sc
return SomeClass pointer rSc

正如你可以自己读/看到的那样,没有区别,因为第二个例子中的第二个语句无论如何都是多余的

两者没有区别。它们都构造一个对象并返回指向该对象的指针,当它们完成该对象时,将调用者留给delete