C++: создание локальной копии объекта

Я разработчик объективного C, который борется с кодом C++.

Ниже приведен код, который я имею в C++:

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

Мне нужно создать локальную копию (не ссылку) GetLastError(),

Как получить локальную ссылку, а также проверить на ноль?

Вот моя неудачная попытка:

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

2 ответа

Решение

Согласно моей функции понимания 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
}
Другие вопросы по тегам