порядок функций в cpp файле

Как Greg сказал, можно использовать структуру, если Вы имеете дело с двоичными значениями, но если у Вас просто есть "шестнадцатеричное число", но в формате байта Вы могли бы хотеть просто преобразовать ее как:

s = 'y\xcc\xa6\xbb'
num = int(s.encode('hex'), 16)

... это совпадает с:

num = struct.unpack(">L", s)[0]

... кроме он будет работать на любое число байтов.

6
задан ufukgun 7 August 2009 в 13:43
поделиться

9 ответов

мой личный порядок задается порядком внутри объявления класса:

class MyClass 
{
public:
    MyClass();
    ~MyClass();

     void start();

protected:
     static void init(MyClass *);

private:
     int  m_iCounter;   ///< counter variable for....
};

будет выглядеть так в .cpp:

MyClass::MyClass() :
   m_iCounter(0)
{
   ...
}

MyClass::~MyClass() {
   ...
}

void MyClass::start() {
   ...
}

void MyClass::init(MyClass *) {
    ...
}

Порядок определяется следующим образом:

  1. Конструкторы + Деструкторы
  2. (только для проектов Qt :) сигналы
  3. общедоступные методы - упорядочены по важности, например сначала идет start () и stop () , затем геттеры и сеттеры
  4. защищенные методы, упорядоченные по важности
  5. защищенные члены
  6. частные методы
  7. частные члены

Надеюсь, что это поможет.

ciao, Крис

11
ответ дан 8 December 2019 в 03:27
поделиться

Это может показаться глупым, но я пытаюсь упорядочить свои общедоступные методы по «порядок« нормального »использования», поэтому сначала идут конструкторы, затем общедоступные методы doStuff, затем методы закрытия ... исключение из этого «правила» - деструктор ~, который идет после последнего конструктора.

Последним идет любой частные "вспомогательные" методы.

Я использую этот же подход на всех языках ... (C ++, Java, C #, Perl, sh или что-то еще), и на самом деле никто не застрелил меня за это (пока).

Ура. Кейт.

4
ответ дан 8 December 2019 в 03:27
поделиться

Я привык к порядку с платформы Symbian, где порядок следующий:

  • открытые, защищенные, частные методы
  • открытые, защищенные, частные переменные

Причина в том, что руководствовались правилами расширения уже выпущенных интерфейсов для обратной совместимости. Поскольку наиболее вероятно добавить частную переменную, они помещаются в конец класса, чтобы добавление новой не изменило расположение любых других переменных в классе. Вещи, которые изменяют интерфейс, затем идут перед этим в порядке «общедоступный, защищенный». Затем порядок копируется для методов класса, хотя они не изменяют расположение в памяти каких-либо переменных в экземпляре класса.

И не спрашивайте о правилах для виртуальных функций;)

3
ответ дан 8 December 2019 в 03:27
поделиться

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

Обычно я их заказываю: Конструктор Деструктор В каком бы порядке я не реализовал остальное

, я затем возвращаюсь и группирую логические / связанные функции вместе

Вероятно, более важно сгруппировать связанные вещи / упорядочить вещи в файле заголовка для удобства чтения, чем в файле cpp.

3
ответ дан 8 December 2019 в 03:27
поделиться

Внутри класса не существует строгих правил языка. Вне класса вам необходимо убедиться, что объявление предшествует определению, когда они разделены.

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

2
ответ дан 8 December 2019 в 03:27
поделиться

Стандарт нашей компании:

  1. конструкторы
  2. деструкторы
  3. общедоступные методы (отсортированы по алфавиту)
  4. частные методы (отсортированы по алфавиту)
2
ответ дан 8 December 2019 в 03:27
поделиться

От самого важного к самому низкому:

  • Частные переменные (не шучу, они раскрывают большую часть внутренней работы вашего класса)
  • Конструкторы
  • Открытые методы
  • Защищенные методы
  • Частные методы

Сами методы должны быть упорядочены по их «уровню абстракции»: более высокий уровень: вверх, более низкий уровень: вниз, другими словами, структурируйте ваш методы, чтобы они вызывали только методы, указанные ниже.

2
ответ дан 8 December 2019 в 03:27
поделиться

Иногда бывает удобно иметь несколько локальных вспомогательных функций в безымянном пространстве имен (также известном как анонимное пространство имен ) в файле CPP. Если это так, я бы рекомендовал разместить эти функции сверху (в файле CPP), просто чтобы быть уверенным, что они определены до любой другой функции, которая их вызовет.

1
ответ дан 8 December 2019 в 03:27
поделиться

] Я использую свою среду IDE для перехода к функциям в моем файле cpp, и она упорядочивает их в алфавитном порядке, или я выполняю поиск, и с поиском во время ввода, это очень быстро.

Так что для меня нет абсолютно никакой разницы в рабочий процесс в зависимости от порядка функций в файле .cpp ...

1
ответ дан 8 December 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: