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

Сказали некрасиво пишу - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 45, средняя оценка - 4.98
Demelurg
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 28
12.10.2013, 11:08     Сказали некрасиво пишу #1
изучаю с++ почти 2 месяц , пишу програму она работает но препод говорит что иногда не красиво пишу ((( пишу так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class Time
{
private:
    int hour;
    int minute;
    int second;
    int tmp_sec;
    int tmp_min;
public:
    Time():hour(0),minute(0),second(0) 
    {}
    Time(int h , int m , int s):hour(h),minute(m),second(s)
    {}
    void Out_put()const
    {
        cout<<setw(3)<<" Time = "<<setw(3)<<hour<<" : "
            <<setw(3)<<minute<<" : "<<second<<endl;
    }
 
    Time sum_Time(Time);
};
 
Time Time::sum_Time(Time other_time)
   {
       Time tmp;
       tmp_sec = 60;
       tmp_min = 60;
 
       tmp.hour = hour + other_time.hour ;
 
       tmp.second = second + other_time.second ;
       tmp.minute = minute + other_time.minute ;
        
           if ( tmp.second >= 60 )
               {
                   tmp_sec *= tmp.second / 60 ;
                   tmp.minute += tmp_sec / 60 ;
                   tmp.second -= tmp_sec ;
               }
 
               if ( tmp.minute >= 60 )
                   {
                       tmp_min *= tmp.minute / 60 ;
                       tmp.hour += tmp_min / 60 ;
                       tmp.minute -= tmp_min ;
                   }
      return tmp;
   }
   
int main()
{
    Time first_Time(22,155,177);
    Time second_Time(12,39,89);
 
    first_Time.Out_put();
    second_Time.Out_put();
 
    cout<<endl<<endl<<" You Three = ";
    Time three_Time = first_Time.sum_Time(second_Time);
    three_Time.Out_put();
 
    cout<<endl<<endl;
 
    return 0;
}
не красиво потомучто не подписую что делает та или иная функция в коментариях ???
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2013, 11:08     Сказали некрасиво пишу
Посмотрите здесь:

пишу ed, отмена изменений C++
Пишу ОС, нужен доступ к экрану C++
C++ Вопрос новичка - пишу калькулятор
Пишу консольное приложение C++
C++ пишу калькулятор. подскажите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Demelurg
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 28
12.10.2013, 18:05  [ТС]     Сказали некрасиво пишу #41
Phantom про .h-файл ищо не учил , знаю про него немножко, за книгу спасиб , почитаю на днях( до работы мне ищо далеко)а метод вынес чтоб попробовать , в теме книги говорили что можно так делать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
12.10.2013, 18:06     Сказали некрасиво пишу #42
Цитата Сообщение от castaway Посмотреть сообщение
А что их различать? У них разница только в public: и private: по-умолчанию. Если хочешь больше писанины то следуй своему варианту, я не против.
Ну знаешь, так можно вообще классы прекратить писать - открытое наследование используется чаще, а у структур оно тоже по дефолту)
В целом с точки зрения кол-ва писанины и языка большой разницы нет. Но когда я встречаю в большом коде структуру, она как бы мне говорит: чувааак, обрати внимание на мои данные. А когда класс - чуваак, посмотри повнимательнее на функции-члены.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
12.10.2013, 18:08     Сказали некрасиво пишу #43
ct0r, да пиши как хочешь, мне все равно. Я лишь констатирую факт.

Не по теме:

Там конечно есть маленький нюанс при наследовании, но тут это не рассматривается..

Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.10.2013, 18:09     Сказали некрасиво пишу #44
Цитата Сообщение от Phantom Посмотреть сообщение
Выносишь методы - выноси все, реализуешь их при объявлении - реализуй все.
Не очень понятно. А как быть с inline методами? Инлайнишь один - инлайнить и все остальное в классе?
Phantom
Эксперт C++
 Аватар для Phantom
3159 / 841 / 15
Регистрация: 29.12.2008
Сообщений: 952
12.10.2013, 18:15     Сказали некрасиво пишу #45
Tulosba, ну это да, исключение.
Avazart
 Аватар для Avazart
6894 / 5134 / 250
Регистрация: 10.12.2010
Сообщений: 22,566
Записей в блоге: 17
12.10.2013, 20:14     Сказали некрасиво пишу #46
Цитата Сообщение от Убежденный Посмотреть сообщение
В C++ имена, начинающиеся с подчеркивания, зарезервированы.
C++03, 17.4.3.1.2 Global names
Только лично я не понимаю что это означает и чем черевато такое использование. Чем собственный класс не внутренняя реализация?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 20:28     Сказали некрасиво пишу #47
Цитата Сообщение от Avazart Посмотреть сообщение
Только лично я не понимаю что это означает и чем черевато такое использование. Чем собственный класс не внутренняя реализация?
...
Миниатюры
Сказали некрасиво пишу  
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.10.2013, 20:40     Сказали некрасиво пишу #48
alsav22, так локально (член в классе) можно получается называть. Вроде бы об этом и говорит Avazart.
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 981
Регистрация: 02.05.2013
Сообщений: 10,297
Завершенные тесты: 1
12.10.2013, 20:46     Сказали некрасиво пишу #49
Цитата Сообщение от Avazart Посмотреть сообщение
Чем собственный класс не внутренняя реализация?
Под реализацией Стандарт подразумевает реализацию компилятора и его библиотек.
Если использовать в своем коде ведущее подчеркивание, можно напороться на
ситуацию, когда при выходе очередной версии компилятора возникнет конфликт имен.
Или, что еще хуже, вместо какого-то символа будет использован символ, определенный
компилятором или библиотекой. Код будет по-прежнему компилироваться, но работать с
ошибками.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11807 / 6786 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
12.10.2013, 20:48     Сказали некрасиво пишу #50
Цитата Сообщение от Tulosba Посмотреть сообщение
alsav22, так локально (член в классе) можно получается называть.
а если макрос?
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.10.2013, 20:53     Сказали некрасиво пишу #51
Цитата Сообщение от Убежденный Посмотреть сообщение
Код будет по-прежнему компилироваться, но работать с
ошибками.
Удавалось с таким сталкиваться? Надо порыть список имен для разных реализаций. Стало интересно посмотреть, что они могут заменить таким образом в коде.

Добавлено через 53 секунды
Цитата Сообщение от Croessmah Посмотреть сообщение
а если макрос?
так макросы БОЛЬШИМИ буквами должны быть, имхо.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
12.10.2013, 20:53     Сказали некрасиво пишу #52
Цитата Сообщение от Tulosba Посмотреть сообщение
так макросы БОЛЬШИМИ буквами должны быть, имхо.
Да ну ладно?.. Ты еще скажи с согласной начинаться)
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.10.2013, 21:04     Сказали некрасиво пишу #53
Цитата Сообщение от castaway Посмотреть сообщение
Да ну ладно?.. Ты еще скажи с согласной начинаться)
Давай лучше на примерах. Я вот пока не вижу чего-то с одним подчеркиванием и последующей маленькой буквой в качестве макроса предопределенного реализацией. А ты?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11807 / 6786 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
12.10.2013, 21:06     Сказали некрасиво пишу #54
Цитата Сообщение от Tulosba Посмотреть сообщение
так макросы БОЛЬШИМИ буквами должны быть, имхо.
то бишь из-за подчеркивания мы сразу получаем ограничания:
нельзя писать БОЛЬШИМИ букаффками
нельзя в глобальной области видимости использовать, во избежании конфликта
морока со всякими ::

стоит ли этого подчеркивание?
Всегда можно пидумать префикс для локальных данных (у некоторых, например, распространенно m_)
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
12.10.2013, 21:09     Сказали некрасиво пишу #55
Цитата Сообщение от Tulosba Посмотреть сообщение
Я вот пока не вижу чего-то с одним подчеркиванием и последующей маленькой буквой в качестве макроса предопределенного реализацией.
Не об этом речь. В своем утверждении ты ничего не говорил про "предопределенное реализацией", ты просто утвердил что макросы должны быть написаны в верхнем регистре.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.10.2013, 21:09     Сказали некрасиво пишу #56
Один нашел:
Identification _hpux Defined by HP UPC
отсюда
Правда там и
Identification sgi
есть. Что явно нарушает все правила.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
12.10.2013, 21:10     Сказали некрасиво пишу #57
Цитата Сообщение от Croessmah Посмотреть сообщение
у некоторых, например, распространенно m_
По-моему это самый нормальный подход. И конфликта не будет, и понятно что member.

Добавлено через 31 секунду
Цитата Сообщение от Tulosba Посмотреть сообщение
Что явно нарушает все правила.
А кем эти правила определены?
Avazart
 Аватар для Avazart
6894 / 5134 / 250
Регистрация: 10.12.2010
Сообщений: 22,566
Записей в блоге: 17
12.10.2013, 21:10     Сказали некрасиво пишу #58
Цитата Сообщение от Убежденный Посмотреть сообщение
Под реализацией Стандарт подразумевает реализацию компилятора и его библиотек.
Если использовать в своем коде ведущее подчеркивание, можно напороться на
ситуацию, когда при выходе очередной версии компилятора возникнет конфликт имен.
Или, что еще хуже, вместо какого-то символа будет использован символ, определенный
компилятором или библиотекой. Код будет по-прежнему компилироваться, но работать с
ошибками.
Цитата Сообщение от Croessmah Посмотреть сообщение
а если макрос?
Ну вот разве что макрос, какой конфликт имен внутри моего класса?
Да и макросы вроде должны действовать локально по логике вещей, не затрагивая "мой" класс.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11807 / 6786 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
12.10.2013, 21:11     Сказали некрасиво пишу #59
Цитата Сообщение от Avazart Посмотреть сообщение
Ну вот разве что макрос, какой конфликт имен внутри моего класса?
ну как бы препроцессору наплевать на область видимости
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2013, 21:15     Сказали некрасиво пишу
Еще ссылки по теме:

C++ Пишу транслятор и интерпритатор
Сказали сделать такое C++
Ядрышко ОСи пишу C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.10.2013, 21:15     Сказали некрасиво пишу #60
Цитата Сообщение от castaway Посмотреть сообщение
В своем утверждении ты ничего не говорил про "предопределенное реализацией", ты просто утвердил что макросы должны быть написаны в верхнем регистре.
Я может и не говорил, но речь-то шла именно об этом. Что вдруг пользовательский идентификатор напорется на совпадающий с ним зарезервированный реализацией.

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
Да и макросы вроде должны действовать локально по логике вещей, не затрагивая "мой" класс.
Макросы они ж тупые не разбирают где "мой", где "твой". Подстановка же банальная.

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
По-моему это самый нормальный подход. И конфликта не будет, и понятно что member.
Вообще, нормальные IDE с подсветкой синтаксиса и так что надо подсветят. Что никакие m_ нафиг не нужны. Хотя, если кто-то практикует блокнот или vi ....
Yandex
Объявления
12.10.2013, 21:15     Сказали некрасиво пишу
Ответ Создать тему
Опции темы

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