C++:创建对象的本地副本

C++: Creating a local copy of an Object

我是一名 objective-C 开发人员,正在为 C++ 代码苦苦挣扎。

下面是我在 C++ 中的代码:

ULConnection *conn;
...... //code that builds up the connection
conn->GetLastError()->GetString(value, 255);

我需要创建 GetLastError() 的本地副本(非引用)。

如何获取本地引用并检查是否为空?

这是我失败的尝试:

ULError error = *conn->GetLastError();
if (&error != NULL){}

根据我的理解,函数 conn->GetLastError() return 是 ULError 的指针,需要检查 return 指针是否为空。

这对你有用。

const ULError *error = conn->GetLastError();
if (error){}

从 C++11 开始,您可以执行以下操作,而不是与 NULL

进行比较
if( error != nullptr)

假设 GetLastError returns 一个指针

if (conn->GetLastError() != nullptr)
{
  ULError error = *(conn->GetLastError());
  // use the error
}