局部变量或指针

yog*_*iam 3 c++ pointers

给定任何随机C++框架中的类,如何知道是否必须在堆栈上创建一个简单对象或者在堆上创建指向对象的指针?

假设一个函数以引用(&)变量的形式接受参数.调用者可以将局部变量传递给它或指针(*ptr).被调用的函数可能会也可能不会从传递的对象中复制dat.

这个问题是我之前关于 C++ Bada开发的问题的后续问题.

Kon*_*lph 6

通常,每个精心设计的C++库都允许这两者.在大多数情况下,库不关心调用者分配内存的位置,因为调用者处理自己的内存.如果库有额外的要求(例如它占用了一个指针),那么它会仔细记录这个.

此外,作为一般准则,避免指针和freestore内存.C++在设计时考虑了堆栈对象.如果没有令人信服的理由使用不同的东西,那么就不要.new应该在你的代码的前提下使用非常谨慎,而且delete应该永远不会被使用-那就是,总是让你分配的内存可以以自动的方式(智能指针)来处理.