Я разработчик объективного 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()
возвращает указатель ULError
и нужно проверить, является ли указатель возврата нулевым или нет.
Это будет работать для вас.
const ULError *error = conn->GetLastError();
if (error){}
Начиная с C ++ 11 вы можете сделать следующее вместо сравнения с NULL
if( error != nullptr)
при условии, что GetLastError возвращает указатель
if (conn->GetLastError() != nullptr)
{
ULError error = *(conn->GetLastError());
// use the error
}