• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Задача: Классы. Определение класса Tnote(запись). Перегрузка операторо

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Помогите пожалуста, я не знаю как реализовать((
не могу разобратся, может есть какой-то пример. Буду очень признательна

1. Определить класс с именем NOTE, содержащий следующие поля:
• фамилия, имя;
• номер телефона;
• год рождения .
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из трех объектов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;
• вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
• если такого нет, выдать на дисплей соответствующее сообщение.
 
E

ensane

2lazybiz:
Как бы странно проходить перегрузку операторов и не проходить стандартную библиотеку классов... Всегда можно сказать: в примере почерпнул.
2ксешенька:
DarkKnight125 тебе все нормально сделал.
C++:
bool operator == (TNote& A) 
...
friend istream& operator>> (istream& in,TNote& Note) 
...
friend ostream& operator<< (ostream& out, TNote& Note)
вот перегрузка операторов.
 
D

DarkKnight

А вот что произойдет, если добрый препод при приемке вышеприведенной программы решит ввести имя "Рома куча пробелов в строке и еще какая-нибудь лабуда и переполнение буфера однако"?
Посмотрите мой код еще раз...Я никогда не делаю возможности переполнения буфера и этот код - не исключение......
Максимум что тут может переполниться это поток ввода (но это долеко не переполнение буфера же, вы же понимаете), кстати он так же может переполниться и при использование std::string...
 
D

DarkKnight

надо сделать оператор перегрузки, как это сделать??
и зачем оно вообще надо?
Вот смотри, зачем оно тебе надо.... Рассмотрим на случае оператора ==
С++ понимает как можно сравнивать базовые типы и классы, но ты же делаешь свой....
У тебя фамилия, имя, номер телефона, и год рождения.... Нужно же объяснить оператору, какие именно поля нужно сравнить... Может быть равенство вообще будет достигнуто при совпадении совокупности имени и фамилии... Поэтому все эти вещи нужно описать однозначно для класса, это и называется перезагрузкой операторов...
 
E

ensane

2DarkKnight125:
google на тему "cin и переполнение буфера". А std::string автоматически растягивается под текущие нужды, хотя и у него есть свои недостатки.
P.S. надо в другую тему переползать.
 
D

DarkKnight

google на тему "cin и переполнение буфера".
Начну с того, что я не ищу в Гугле те вопросы, на которые я точно знаю ответы....

Второе...
Я никогда не делаю возможности переполнения буфера и этот код - не исключение......
Еще раз скажу... Этот код не исключение....

Третье...
Вы совершенно не компетенты в вопросе "переполнения буфера" (ваше предыдущее сообщение, совершенно не соответсвует сообщению последнему).... В том месле вы говорили про одно переполнение буфера в этом месте вы говорите о совсем другом "переполнении буфера" (кавычки - не случайны)....
Максимум что тут может переполниться это поток ввода (но это долеко не переполнение буфера же, вы же понимаете)
Вот о чем вы говорите, это даже рядом не стоит с переполнением буфера, это только те символы (которые непрочитаны и оставлены в потоке)...
Переполнение же - это изменение локальной памяти (значения переменных программы) путем не соответсвия передаваемой информации (которая считается с памяти), в область выделенной памяти для этих данных (переменную)....(с) Сказанно своими словами... Могу конечно разница с оригинальным определением... Критическая ошибка, полное нажушение алгоритма программы....
Поверьте, я последние 5 лет, зарабатываю на хлеб, тем что пишу драйвера для торгового оборудования и в переполнении поверьте разбираюсь....
А то что вы пытаетесь, сейчас предьявить - это простите за прямоту - бред, как бы вам точнее сказать (удобство интерфеса ввода), но никак не переполнение, синхронизация потоков - это совершенно не то, просто для таких программ лишнее раздувание кода всякими там
if (istream::fail());istream::sync(); или istream::ignore() - излишнее и крайне затрудняет понимае... Еще раз скажу, если вы так и не поняли, клас STL std::string не застрахован от переполнения потокового ввода.. Совсем не застрахован...
И ваша фраза о :

Вы же мне говорите, про обычное
А std::string автоматически растягивается под текущие нужды
Верна, но говорит она совсем о другом, а не о том что вы имеете ввиду...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!