我想让我的 Class1 可以通过类型转换运算符转换为 Class2:
class Class1 {
public:
operator Class2() const {
//....
}
}
但如果我在运算符实现中创建一个 Class2 对象,它很可能不会被调用者删除。那么实现此类功能的最佳方式是什么?
最佳答案
只有当你做这样疯狂的事情时才需要删除:
operator Class2() const
{
Class2 *p = new Class2();
...
return *p;
}
但是,以下是可以的:
operator Class2() const
{
Class2 c2;
...
return c2;
}
关于C++ 类型转换运算符和内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6395483/