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
}