Приятного программирования!

May 13, 2010 10:01

Вот в таком вот стиле нам предлагают писать под Samsung bada.

Copy Source | Copy HTML
result MyClass::GetNetworkManagerInfo(void)
{
    NetworkStatus networkStatus;
    NetworkInfo networkInfo;

NetworkManager *pNetworkManager = new NetworkManager();

result r = pNetworkManager->Construct(this);
    if (IsFailed(r))
    {
        delete pNetworkManager;
        return r;
    }

r = pNetworkManager->GetNetworkStatus(networkStatus);
    if (IsFailed(r))
    {
        delete pNetworkManager;
        return r;
    }

r = pNetworkManager->GetNetworkInfo(networkInfo);
    if (IsFailed(r))
    {
        delete pNetworkManager;
        return r;
    }

delete pNetworkManager;
    return E_SUCCESS;
}

Помимо гениального управления ресурсами (какой индуский без утечек памяти и копи-паста?), наблюдаем характерный void в качестве аргумента функции и определение локальных переменных строго в ее начале. Да, разумеется, GetNetworkInfo и GetNetworkStatus проще сделать обычными статическими методами (особенно при такой вот работе с памятью).
Некоторые наивно полагают, что они пишут на C++.

Удивительно, но результат new на нуль можно не проверять.
Еще более удивительно, что никто не додумался до мощного макроса

Copy Source | Copy HTML
#define CHECK_EXIT if (IsFailed(r)) { delete pNetworkManager; return r; }

А на дворе, как бэ, уже 2010-й год. А кто-то вроде Samsung, Apple и Nokia продолжают ностальгировать по 80-м, когда деревья были большими и трава забористее.

Товары для охоты и рыбалки - одежда для охоты и рыбалки. Вездеходы для рыбалки и охоты.

c++, programming

Previous post Next post
Up