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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ копирование файла http://www.cyberforum.ru/cpp-beginners/thread789254.html
недавно изучаю С++, собственно столкнулся с проблемой при копировании из одного файла в другой. проблема заключается в дублировании последнего символа, насколько я понимаю, происходит это из-за EOF. получилось обойти двухуровневым циклом, но чувствую что так вряд ли делается. может кто подскажет более изящное решение. #include <iostream> #include <fstream> using namespace std; int...
C++ Задачка на массив. Заменить все его элементы с отрицательным значением на значение минимального положительного элемента Здравствуйте. Помогите решить задачу. Задан массив А(н). Заменить все его элементы с отрицательным значением на значение минимального положительного элемента http://www.cyberforum.ru/cpp-beginners/thread789234.html
Нужно доработать C++
Здравсвуйте. У меня есть задание. Должно быть главное меню со следующими операциями: Добавить запись Удалить запись Вывести все записи (только те которые существуют) Найти запись (по номеру счёта) Изменить баланс счёта (введя номер счёта, и положительное или отрицательное значение – изменить сумму на введённое значение) Вывести должников (все записи с отрицательным балансом) Сосчитать...
C++ Задачник с примерами по С++
Доброе время суток, подскажите есть ли какой задачник с примерами (по аналогии задачников по математики) где было бы много (100+) заданий разбитых по темам, начиная от самых простых например: Глава 1: Арифметические операции. преобразование типов, логические операции; Глава 2: Конструкция логического выбора if, структура множественного выбора switch Глава 3: Циклы while, do-while, for,...
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 http://math.stackexchange.com/questions/306272/how-many-tetrahedrons-in-a-tetrahedron/306493#306493 Как это же написать на C++? То что пишу я никак не выдает 4836. Ограничение для N = 3000;
C++ Собственное число Есть ли у кого нибудь уже готовый алгоритм нахождения собственного числа, или хотябы дайте наводку как его запрограмировать без использования полиномов Добавлено через 2 часа 0 минут Ап! ни у кого не было потребности в собственных числах? подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
18.02.2013, 21:45     Программа с классом Point
Цитата Сообщение от 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;
}
 
Текущее время: 12:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru