c ++ 11 — 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)
2

Другие решения

при условии, что GetLastError возвращает указатель

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

По вопросам рекламы [email protected]