在 C++ 中假设我有
class Sample{
public:
void someFunction();
};
Run Code Online (Sandbox Code Playgroud)
在 main() 中做有什么区别
Sample obj;
obj.someFunction();
AND
Sample *obj = new Sample();
obj->someFunction();
Run Code Online (Sandbox Code Playgroud)
这只是语法问题还是性能/实现差异?什么时候应该使用一个?
这是简单的东西 - 与堆和堆栈有关
Sample obj;
obj.someFunction();
Run Code Online (Sandbox Code Playgroud)
obj 在栈上
和
Sample *obj = new Sample();
obj->someFunction();
Run Code Online (Sandbox Code Playgroud)
在堆上。
这个需要删除。它也存在于范围之外。
性能差不多