小智 12
是的,但对于这种情况,更常见的C++习惯用法是使用引用(可能是const引用)而不是指针.而不是
void foo( sometype * p ) {
p->func();
}
Run Code Online (Sandbox Code Playgroud)
你写:
void foo( sometype & p ) {
p.func();
}
Run Code Online (Sandbox Code Playgroud)
这样做的好处是您不需要取消引用调用者中的对象:
void afunc() {
sometype t;
foo( t );
}
Run Code Online (Sandbox Code Playgroud)
并且还向读者提供潜意识提示,即您不打算将该函数用于获取对象的所有权.
Nav*_*een 10
如果您确定该调用是同步的,那么将堆栈分配的对象的地址发送给该函数是完全有效的.如果调用是异步的(即您调用的函数将指针传递给另一个线程),那么它肯定会产生问题,因为即使在堆栈分配的对象被破坏后,您也可能尝试从不同的线程访问内存地址.
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |