我想知道如何从 C++ 函数返回一个新对象。例如,我有一个用于混合 Objective-C 的 SQLite 包装器,我将其修改为纯 C++。
因此,例如:
list<char*> * SqliteWrapper::RunQuery(const char *query)
{
list<char*> * result = new list<char*>();
//Process query
return result;
}
我可以在其中看到的问题是谁拥有该对象?调用类还是创建对象的类?更糟糕的是,这很容易出现内存泄漏。如果调用者对象没有删除新创建的对象,应用程序最终会出现内存泄漏。
现在我想到这一点,这将很有意义:
int SqliteWrapper::RunQuery(const char *query, list<char*>& result)
{
//Process query
return errorCode;
}
还有其他方法吗?我从事 C# 程序员已经有一段时间了,直到现在才开始大量使用 C/C++。