Форум программистов, компьютерный форум CyberForum.ru

Еще одно размышление о string из STL - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как UUIDGEN.EXE генерит GUID http://www.cyberforum.ru/cpp-beginners/thread461893.html
Мне говорили, что она инфу с конкретной машины стягивает, а какую?
C++ Вставка нового элемента в ListCtrl Проблема с вставкой нового элемента в ListCtrl LVITEM newItem; newItem.mask=LVIF_TEXT|LVIF_STATE; newItem.iItem=0; newItem.iSubItem=1; newItem.state=0; newItem.stateMask=0; newItem.pszText='sdvsvd'; newItem.cchTextMax=0; http://www.cyberforum.ru/cpp-beginners/thread461883.html
Портабельная библиотека для C++ C++
Поделитесь опытом использования портабельных С++ библиотек (linux, sun, win32) ? Необходимо чтобы были : потоки, процессы, события, мютексы, семафоры
C++ Подскажите функцию для получения HWND текущего окна, или по названию окна (для экспорта в VFP6)
пусто
Visual C++ MFC - нужно ли самому следить за удалением подчиненных окон? http://www.cyberforum.ru/cpp-beginners/thread461826.html
Вопрос такого сорта... class CChildWindow : public CWnd { CChildWindow(CWnd* parent); } CMainFrame::CMainFrame()//главное окно приложения { ... CChildWindow *child1 = new CChildWindow(this); CChildWindow *child2 = new CChildWindow(this);
C++ Нужна помощь по переделке интерфейса программного продукта SGI MineSet (за вознагрождение) Нужна помощь по переделке интерфейса программного продукта SGI MineSet: возможность встраивания окон визуализации в произвольный интерфейс; переделка самого интерфейса программы - поменять размеры некоторых панелей, изменение расположения кнопок; подправить некоторые баги, появляющиеся при использовании русских шрифтов Пакет написан на C++ и Java. Есть SDK, но довольно мало документации. ... подробнее

Показать сообщение отдельно
Igor Soukhov
0 / 0 / 0
Регистрация: 06.01.2008
Сообщений: 62
06.01.2008, 21:22     Еще одно размышление о string из STL
Я всего лишь НЕМНОГО =) оптимизировал твой/ваш пример.

>Кстати, раз уж речь зашла о ссылках, как поступать если функция >объеявлена как возвращающая ссылку на объект, но по определенным >причинам не может выполнить этого? Что возвращать?
в таких случаях порядочная функция кидает исключение. А если
это сложно - то все таки постарайся избегать такого дизайна.

То есть от функции c с таким прототипом и кодом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
string& GetString(string input)
{
  static string strRet;  
  if (input.length() == 0)
  {
   //dont know what to to here ...
  }
  else
     strRet = input;  
 
  return strRet;
}
перейти к подобному:
C++
1
2
3
4
5
6
7
8
9
10
11
bool GetString(string input, string& strOut)
{
  if (input.length() == 0)
  {
    //returning false as the signal that processing failed.
    return false;
  }
  else
     strOut = input;  
   return true;
}
исключения - это конечно самое лучшее решение - но
не для начинающих.

Igor Soukhov,
Member of Russian Software Developer Network - www.rsdn.ru
 
Текущее время: 11:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru