Вот в таком вот стиле нам предлагают писать под Samsung bada.
Copy Source |
Copy HTMLresult 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-м, когда деревья были большими и трава забористее.
Товары для охоты и рыбалки -
одежда для охоты и рыбалки. Вездеходы для рыбалки и охоты.