Archive: Студенческий бложик

Заметки 'на полях' C++

2015-10-25

Ответы на часто возникающие вопросы при изучении C++, мои типичные ошибки, ссылки

[xcut]

— Хороший стиль: ul

  • Имена переменных, аргументов начинаются с прописной буквы, если состоит из нескольких слов, то чередуется, например — product и productPrice /ul

— Мои типичные ошибки: ul

  • Использование в конструкторе и в функциях в качестве аргументов скрытые элементы данных, объявленные в заголовочном файле(интерфейсе)
  • Указание в конструкторе при инициализации функций тип аргумента
  • Указание возвращаемого типа в конструкторе при инициализации функции
  • Отсутствие возвращаемого типа перед функцией в интерфейсе — компилятор должен знать какой типа возвращает функция до её реализации
  • Отсутствует ";"(точка с запятой) в конце определения класса в интерфейсе /ul

— Незабудька: ul

  • Во вложенных оператораъ if..else сначала проверять наиболее распространённые случаи, это способствует более быстрой отработке внутренних if..else стр.210
  • Число повторений - число интераций цикла
  • Переменные для хранения сумм перед их использованием инициализируются нулём
  • В .h файлах содержатся прототипы функций — Организация исходников C++ (https://toster.ru/q/12136) — * показать/спрятать

    Для себя сделал такую структуру (часто использую в проектах если больше 3 тысяч строк)
    
  • Всё лежит в одном месте
  • C/CPP файлы содержат код, а в заголовке содержат include «header.h»
  • все H файлы содержат прототипы функций, константы и структуры, которые относятся в C/CPP файлу.
  • в файле header.h прописываются все заголовочные файлы (сначала системные, потом свои)

Таким образом очень легко править всё что связано с одним файлом кода (H и CPP файлы имеют одно имя, ток расширение разное). При добавлении нового модуля, нет необходимости прописывать его заголовочный файл в каждом исходнике где он используется, достаточно прописать только в header.h

И к тому же такой подход позволяет легко обходить ситуации с взаимный include (первый на второго, а второй на первый)

* Class.h - интерфейс; Class.cpp - реализация; main.cpp - код клиента
/ul