0 / 0 / 0
Регистрация: 20.01.2011
Сообщений: 4
|
|||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||
Нужна оценка20.01.2011, 19:42. Показов 1073. Ответов 14
Метки нет (Все метки)
Всем доброго времени суток.
Чуть меньше недели назад начал изучать С++ и сегодня написал таки некое подобие программы. Суть просьбы: нужна чья-нибудь проверка на явный быдлокод/неудачные моменты; хотелось бы услышать мнение от всех, кто пишет больше моего. Сорсы, разумеется, прикреплены. Буду рад любой критике в свой адрес.
0
|
20.01.2011, 19:42 | |
Ответы с готовыми решениями:
14
Оценка значения машинного нуля относительно заданного вещественного числа (нужна блок-схема) Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл Нужна оценка! Нужна оценка сборки |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
20.01.2011, 19:52 | 2 |
%user_name%, Первое замечение. Функции с префиксом get должны быть константные.
+ Я бы использовал побольше перечислений. Магические числа не украшают код
2
|
68 / 68 / 3
Регистрация: 18.12.2010
Сообщений: 127
|
|
20.01.2011, 20:07 | 3 |
Вы используете в классе геттеры и сеттеры (функции). Отделяйте спецификацию от реализации (инкапсуция в каком-то роде). Т.е. header file постовляет только своего рода заглушки на функции, а cpp-файл реализует эти же функции.
А так если вы действительно работаете с С++ только неделю, то довольно не плохо!!! Добавлено через 3 минуты Впредь не выкладывайте код целиком, а только отдельные "интересные" кусочки (рассматривать 300 строчек чужого кода особой радости не приносит!!!)
1
|
20.01.2011, 20:47 | 4 |
killboss, стиль написания кода это личное дело каждого и никакого отношения к ООП не имеет. К тому же функции действительно небольшие.
ForEveR, в Java вообще нет понятия заголовочных файлов, по другому просто нельзя писать, в C# вроде бы тоже не принято. %user_name%, если вы пишете на C++ с использованием STL (а я разглядел строку using namespace std), то пользоваться динамическим выделением памяти в чистом виде не совсем хороший путь. Пользуйтесь контейнерами vector, list и так далее. Отдельные функции CreateField и ей подобные лучше выделить в класс Field. И еще все таки лучше обойтись без использования using namespace, а писать путь полностью, то есть std::cout, std::cin, std::vector и так далее, иначе вся прелесть и смысл пространств имен теряется.
1
|
0 / 0 / 0
Регистрация: 20.01.2011
Сообщений: 4
|
|
20.01.2011, 21:21 [ТС] | 5 |
Учту.
Мм.. использование enum - признак хорошего тона? Спасибо Ага, знаем, но просто здесь класс маленький, поэтому не решился отделять от тела основной программы. Вопрос: как подключать хеадеры? #include <file_name.h>? Не подумал, больше не буду. ) Спасибо
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
20.01.2011, 21:22 | 6 |
%user_name%, #include "file_name.h"
0
|
0 / 0 / 0
Регистрация: 20.01.2011
Сообщений: 4
|
|
20.01.2011, 21:24 [ТС] | 8 |
Этот момент понятен..
..а вот этот как-то не очень. Можно разъяснить?)
0
|
54 / 54 / 9
Регистрация: 09.11.2010
Сообщений: 120
|
|
20.01.2011, 21:26 | 9 |
Объясните мне пожалуйста почему "лучше обходиться" без using namespace'a и полностью писать std::? Не удобно же ...
0
|
68 / 68 / 3
Регистрация: 18.12.2010
Сообщений: 127
|
||||||
20.01.2011, 21:29 | 10 | |||||
Эти файлы расположены где-то c:\program files\vs\ и так далее.
Вам же нужно (как я понял) открыть файл, который находится в проекте. Поэтому
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
20.01.2011, 21:29 | 11 |
Escapable, Неудобно спать на потолке. А прямое использование std::
1) Явно видно использование пространтсва имен. 2) Нет возможности колизий.
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
20.01.2011, 21:30 | 12 |
Escapable, Вот напишите проект на С++, строк так, на пару тисяч и тогда посмотрите удобно или нет.
0
|
68 / 68 / 3
Регистрация: 18.12.2010
Сообщений: 127
|
|
20.01.2011, 21:32 | 13 |
0
|
20.01.2011, 21:35 | 14 | |||||
Для избежания конфликтов. Если во всем пространстве попадется две функции (класса, переменных и так далее) с одинаковыми именами, то возникнет конфликт. Например, в пространстве std существует класс vector. Допустим, что программист создал класс с аналогичным именем. И получаем такой код.
В небольших проектах, конечно это несущественно, так как весь объем кода довольно легко контролируется, но использование явного указания считается хорошей привычкой.
1
|
0 / 0 / 0
Регистрация: 20.01.2011
Сообщений: 4
|
|
20.01.2011, 21:58 [ТС] | 15 |
На ~10 часу прослушивания одной песни появилась мысль: "А сколько я уже это слушаю?" отсюда же вопрос: я так понимаю, что С++ позволяет писать плагины под приложения поддерживающие их (Aimp, WinAmp, etc)?
fasked, спасибо за разъяснение с примером. ADDED: а ф-ии CheckResultFromLastStep() и SetPriority() оказывается-то практически идентичны и вполне можно было обойтись одной с некоторыми правками.
0
|
20.01.2011, 21:58 | |
20.01.2011, 21:58 | |
Помогаю со студенческими работами здесь
15
Нужна оценка профессионала Нужна оценка ПК и монитора Нужна оценка сборки Нужна оценка сборки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |