Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перегрузка оператора >> (C++)
 
 автор: Евгений Петров   (10.11.2005 в 00:22)   письмо автору
 
 

Подскажите пожалуйста как в С++ перегрузить опреатор потока >>.
Например есть класс бинарного дерева CBinTree в нем метод AddNode(int). Так вот мне надо перегрузить >> чтобы можно было добавлять узлы так
CBinTree BinTree1;
BinTree>>5;

Примерно я догадываюсь как описать функцию, а вот что далбше?
istream & operator >> (istream & in,CBinTree & tree)
{
  // вот тут проблемы
}

Заранее спасибо!

   
 
 автор: mannnz   (10.11.2005 в 02:17)   письмо автору
 
   для: Евгений Петров   (10.11.2005 в 00:22)
 

Если хочешь с консоли получать элементы дерева, то так:

istream & operator >> (istream & in,CBinTree & tree) 

  //.....
  //получаешь элемент дерева - некое число
  int n;  
  in >> n;
  
  //добавляешь в дерево
  tree.AddNode(n);

  return in;
}


Если просто оператором сдвига добавлять элементы, то лучше так:

CBinTree & operator<< (CBinTree & tree,int n) 

  //добавляешь в дерево
  tree.AddNode(n);

  return tree;
}

//тогда писать можно:
CBinTree t;
t << 5 << 4;


Писал по памяти, может что-то упустил

   
 
 автор: Евгений Петров   (10.11.2005 в 20:09)   письмо автору
 
   для: mannnz   (10.11.2005 в 02:17)
 

Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования