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

Меню на C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что тут не так? http://www.cyberforum.ru/cpp-beginners/thread708159.html
# include <iostream> using namespace std; int number ; int department ; char name1 ; char name2 ; char domicile ; char job ; char sender ; char diagnosis ;
C++ Вычислить значение выражения напишите вот такую вот программу на языке с++ y=|cos(|4x|)| http://www.cyberforum.ru/cpp-beginners/thread708151.html
C++ Перегрузка ввода и вывода в классе матриц
Пишу класс матриц, перегрузил ввод и вывод, ввод почему-то не работает. Вот код #include<iostream> #include<vector> using namespace std; class Matrix{ public:
C++ деление по модулю
Вообщем пишу калькулятор и наткнулся на проблемку #include "stdafx.h" #include <tchar.h> #include <stdio.h> #include <iostream> #include <string.h> #include <conio.h> #include <windows.h> #include <stdlib.h>
C++ тамагочи на C++ http://www.cyberforum.ru/cpp-beginners/thread708117.html
Всем доброго времени суток, здравствуйте! Недавно загорелся желанием написать игру на С++, решил начать с тамагочи! Полазил по форумам поискал коды,нашел только в Delphi, да синтаксис не очень отличается, но все же не то.. Может у кого есть наработки, коды, пришлите пожалуйста или порекомендуйте литературу, которая может помочь, желательно в электронном виде.. Свои знания ооп и C++ оцениваю на 2+...
C++ Не понятно пару моментов В целом программа поняла, но нужно кое-что уточнить! Зачем мы str присвоили strtok(b, " "); ? зачем в islower(str) стоит str ? И как работает это while (str = strtok(NULL," ")); ? #include <iostream> #include <cstring> int main() { char b = "So Many many: many, Words", s; char* str = strtok(b, " "); подробнее

Показать сообщение отдельно
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.11.2012, 20:17     Меню на C++
Ок. Я тогда буду комментировать только ваш код.
Начнем с того, что из трех конструкторов сделан пока только один.
15 - точно нужна глобальная переменная? если можно, лучше без нее
19 - можно не писать прайват. Так как область видимости в классе по умолчанию прайват
20 - надо переименовать переменную, так как это имя уже используется в стандартной библиотеке
- почему нет переменной, отвечающей за размер выделенной памяти?
- почему нет переменной, отвечающей за текущую длину строки? да, это две разные переменные
24 - магическое число 80 сделать константой и далее использовать ее
25 - не надо вызывать метод инициализации. Конструктор по умолчанию на то и сделан, что вызывается, когда человек не хочет сразу загонять туда данные
33 - а почему именно 80? у вас в задании 80 - это длина строки в конструкторе по умолчанию. В дальнейшем длина строки может быть любой. Убрать это ограничение
35 - опасный ввод. А что если я введу строку длиннее 80 символов? я могу испортить память вашей программы - она может закрешиться в самой неожиданной ситуации. Надо использовать ограничение на длину считываемых символов или считывать данные в std::string
40 - какое право имеет метод ввода на закрытие всей программы? пусть возвращает код ошибки, кидает исключение, просит повторить ввод, просто завершает свою работу ретурном
46 - не надо. Если я запустил ввод данных, то я хочу именно ввести данные. Зачем мне тут же печатать то, что я только что ввел?
53 - вообще убрать из класса, так как эта функция не использует переменные класса и с ним никак не связан.
65 - int main()

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

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