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

Прокомментируйте код. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Управление устройствами http://www.cyberforum.ru/cpp-beginners/thread374692.html
Здравствуйте, У меня возник вопрос, как управлять различными устройствами при помощи с++. Например, как вебка и микр и т.д. Заранее спасибо!
C++ Генератор случайных чисел Еще ни разу не использовал rand(), знаю что перед ним нужно srand(time(NULL)), потому как без этого числа будут одинаковы постоянно. Но не пойму саму идеологию пользования. rand()%100 генерирует числа в диапазоне 0..99, но как это делается с помощью операции остатка? Подскажите как генерировать числа в диапазоне от минимального значения типа до максимального? http://www.cyberforum.ru/cpp-beginners/thread374688.html
C++ подскажите как разрешать
Задали функцию. Написать программу для нахождения определенного интеграла с точностью Е = 10 в степени (-3) для заданных границ с помощью трех методов: 1) прямоугольников, 2) трапеций, 3) Симпсона. 1 f = sin 2 (x / 2), a = 0, b = П / 2;
C++ Управление командной строкой
Здравстуйте, У меня возник такой вопрос, можно ли написать в с++ такую программу которая будит писать команды в командной строке? Спасибо!
C++ Вычислить номер минимального элемента массива http://www.cyberforum.ru/cpp-beginners/thread374656.html
Есть следующая задача: В одномерном массиве, состоящем из n вещественных элементов вычислить номер минимального элемента массива. У меня вышла след. программа ( если она полностью неправильна, не обесуйте, я в этом чайник): #include<iostream.h> int main() { const int n=10; int a; int i,imin,imax,kol_a;
C++ Решение задач определения минимального состава Напишите программу для решения этой задачи используя метод линейного прогромирования подробнее

Показать сообщение отдельно
Bers
Заблокирован
30.10.2011, 00:31     Прокомментируйте код.
KeyGen

1. Избегайте "суржика". Если вы пишите ОО-код, старайтесь максимально не использовать процедурный стиль. Избавляйтесь от глобальных функций и глобальных переменных настолько, насколько это возможно.

2. Вытекает из первого - вместо глобальных функций, создавайте управляющие модули. Одни модули управляют другими. Например, отдельный класс отвечает за организацию пользовательского меню (и не нужно ничего будит лепить прям в майне), другой модуль - администрирует анкетами, третий - класс пиплов, и тп.

3. Взгляните на функцию Pupil** Funk_class(int mass[]);

Избегайте голых указателей на внешнем уровне. Предоставьте пользователю вашей библиотеки
(вашей архитектуры) удобный интерфейс так, что бы ему вообще не пришлось думать ни о каких указателях, самому думать о выделении памяти, и тп.

Вместо этого, лучше предоставьте пользователю удобный класс-меню, через который он сделает все тоже самое, и даже подозревать не будит о кишках вашей библиотеки.

4. Обратите внимание на размер ваших функций по количеству строк.
Если функция слишком большая по количеству строчек - это намек, что задача возлагаемая на функцию достаточно сложна. И нужно разбить её на несколько задачек попроще.
Лично я, если у меня тело функции не влазиет на один экран - уже думаю как разбить её код на куски, и вместо одной большой сделать несколько маленьких. Так проще понять логику алгоритмов, меньше путаницы, меньше вероятность ошибок. Функции-члены классов, которые не должны быть видны снаружи надлежит делать приватными, или протектами.

Добавлено через 3 минуты
в догонку: если функция принимает слишком много параметров, есть смысл подумать о том, что она слишком универсальна и неудобна.

Возможно, вместо одного сеттера лучше сделать несколько более мелких.
Или же, для удобства пользователя - вместо кучи аргументов передавать одну структуру, имеющую все необходимые поля.
 
Текущее время: 18:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru