Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программа с классом Point - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ копирование файла http://www.cyberforum.ru/cpp-beginners/thread789254.html
недавно изучаю С++, собственно столкнулся с проблемой при копировании из одного файла в другой. проблема заключается в дублировании последнего символа, насколько я понимаю, происходит это из-за EOF....
C++ Задачка на массив. Заменить все его элементы с отрицательным значением на значение минимального положительного элемента Здравствуйте. Помогите решить задачу. Задан массив А(н). Заменить все его элементы с отрицательным значением на значение минимального положительного элемента http://www.cyberforum.ru/cpp-beginners/thread789234.html
Нужно доработать C++
Здравсвуйте. У меня есть задание. Должно быть главное меню со следующими операциями: Добавить запись Удалить запись Вывести все записи (только те которые существуют) Найти запись (по номеру...
C++ Задачник с примерами по С++
Доброе время суток, подскажите есть ли какой задачник с примерами (по аналогии задачников по математики) где было бы много (100+) заданий разбитых по темам, начиная от самых простых например:...
C++ Количество корней уравнения с 4 переменными http://www.cyberforum.ru/cpp-beginners/thread789175.html
Всем здравствуйте, собственно проблема, требуется найти количество решений этого уравнения u/(N−u)*z/(N−z)=v/(N−v)*w/(N−z). Ребята на английском форуме предложили решение работающее за N^2 log N...
C++ Собственное число Есть ли у кого нибудь уже готовый алгоритм нахождения собственного числа, или хотябы дайте наводку как его запрограмировать без использования полиномов Добавлено через 2 часа 0 минут Ап! ни у... подробнее

Показать сообщение отдельно
Kuzia domovenok
1960 / 1813 / 142
Регистрация: 25.03.2012
Сообщений: 6,286
Записей в блоге: 1
18.02.2013, 21:45
Цитата Сообщение от Nixy Посмотреть сообщение
а можешь пояснить в чем былокод, на твой взгляд, при обеспечении доступа к некоторым полям класса, с помошью getteroв\setterов
Полагаю, он имел в виду не геттеры, а такие "необходимые" члены класса
C++
1
2
3
4
5
6
7
void Point::Input(){//Как так? Все классы просто обязаны уметь управляться с вводом/выводом!
std::cout<<"input point";
std::cin>>x>>y;
}
void Point::Output(){
std::cout<<x<<y;
}
Обрати внимание на формулировку вопроса:
Определить в этом классе функции-члены, которые
1)обеспечивают ввод/вывод элементов класса,
2) а также доступ к закрытым членам класса.
То есть имелись в виду: Первое - нормальные гет/сеттеры
Второе - именно вышеприведённые быдлофункции.
В последнее время вижу всё больше быдлокодо-заданий, требующих это. От таких заданий, у учеников создаётся впечатление, что чуть ли не каждый класс должен уметь выводить себя в консоль.
Недостатки подхода очевидны: - класс становится привязанным к нюансам реализации ввода-вывода.
- Если изменить в приложении модуль ввода-вывода, придётся переписывать все классы.
- Дублируется код присвоения значений полям класса.
- Класс становится привязанным к использованию в консольных приложениях.
- классу позволяется проявить инициативу и самостоятельно залезть на экран
Короче, полное нарушение принципа "разделяй и влавствуй".
В нормальной архитектуре сам пользователь класса определяет, откуда взять данные для записи класс, а затем вызывает у него сеттер. Например,
C++
1
2
3
4
void Manager::init_Points(){
  thePoint.setX(Input_manager.getInteger());
  thePoint.setY(Input_manager.getInteger());
}
Естественно в учебных примерах такой overengineering не нужен. Но суть не меняется. В твоём примере консольного приложения этим должна заниматься функция main (или ещё какая).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* НЕ ВЕРНО
int main(){
  Point thePoint;
  MyPoint.Input();
  MyPoint.Output();
}*/
//ВЕРНО
int main(){
  int x, y;
  Point thePoint;
  cout<<"Введи x y";
  cin>>x>>y;
  thePoint.setX(x);
  thePoint.setY(y);
  cout<<thePoint.getX()<<" "<<thePoint.getY();
  return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru