这是我的问题。我有一个指向某个类的分配内存的指针:
Class *pClass = new Class();
现在我想将这个对象传递给某个函数,它会使用这个对象来复制它而不修改它。问题是如何正确传递对象?
void someFunc (const Class &_class);
{
Class *pClassInFunc = new Class (_class);
...
}
...
someFunc (*pClass)
或者
void someFunc (const Class *_class);
{
Class *pClassInFunc = new Class (*_class);
...
}
...
someFunc (pClass)
或者
void someFunc (Class _class);
{
// just use _class since it's already a copy
...
}
...
someFunc (*pClass)
我选择了第一种方式,但对我来说看起来很奇怪,smth告诉我它不正确。第二个看起来更像 C 风格(或不是?)。最后一个在堆栈中创建了一个副本,这是不可取的。那么,最好的解决方案是什么?谢谢您的回答。
编辑:刚刚看到,我在 pClassInFunc 之前忘记了 *。更正了,对不起。