Некоторые соглашения о стиле написания

Названия

Названия Классов

Названия классов должны начинаться с большой буквы. Если название состоит из нескольких слов, то каждое слово начинается с большой буквы.
Обратите внимание, что public рекомендуется записывать с отступом перед ним.
    class MyNameClass
    {
        public:
        ...
    };
При записи конструктора инициализация членов класса должна записываться так:
    class MyNameClass
    {
        public:
            MyNameClass():
                x(5)
            {
            }
        private:
            int x;
    };

Названия переменных

Названия переменных и членов класса должны начинаться строчными буквами. Если название составное, то второе слово нужно писать с большой буквы.
Записывать переменные полностью маленькими буквами, разделяя слова подчёркиваниями, запрещается.
    int myVariableName;

Названия функций

Названия функций должны начинаться с маленькой буквы. Первым должен идти глагол. Если название составное, то второе слово нужно писать с большой буквы.
Обратите внимание, что при вызове функций пробел между названием функции и скобками, содержащими параметры, не ставится. См. пример.
Называния функций полностью маленькими буквами с подчёркиваниями между словами допустимо только для тех классов, которые наследуются от библиотек, использующих аналогичную нотацию (например, gtk--)
    void printFunction(void);
    void debugInfo();

Названия файлов

Названия файлов должны начинаться с большой буквы. Если в файлах описывается class MyNameClass, то названия файлов должны быть соответственно MyNameClass.h и MyNameClass.cc. Что касается оформления см. Оформление заголовочных файлов и Оформление cpp-файлов

Название макросов

Определения макросов пишутся ЗАГЛАВНЫМИ БУКВАМИ (Кроме спец. макросов NameHeaderFile_H_) Описание макросов лучше производить в заголовочном файле в начале (см. Оформление заголовочных файлов). Использование макросов не рекомендуется.

Название констант и enum'ов

Названия констант и enum'ов начинаются с большой буквы.
            const int MyConst;
            enum MyEnum { One, Two, Three };

Форматирование

Ширина текста программы не должна превышать 78 символов для возможности отображения на всех терминалах и печати на принтере. Отступы в программе должны формироваться исключительно знаками табуляции.
Каждый может выбирать в настройках того редактора, который он использует, сколько пробелов (4 или 8) использовать знак табуляции. Рекомендуется 4 знака. В редакторе mcedit в меню Настройка->Разное должно быть отключено "Симулировать неполную табуляцию".
Фигурные скобки во всех случаях записываются одна под другой.
Условия. Скобки записываются через пробел после if. Не используйте лишних скобок при записи || и &&
    function (void)
    {
        body of the function;
        if (a > b || a < c)
        {
            body of the condition;
        }
        else if (x > y)
        {
            body of the not condition;
        }
    }
При длинных названиях переменных рекомендуется записывать содержимое круглых скобок как в примере ниже
        if ( veryLongA > veryLongB )
        {
            body of the condition;
        }
С короткими названиями лучше запись
        if (a>b)
        {
        }
Присваивания записываются как
        veryLongA = veryLongB;
для коротких переменных допустима запись
        a=b;
Типы данных. Знаки, относящиеся к типу, записываются слитно с названием типа.
        PointerToObject* p;
        ReferenceToObject& r;
Часто используемые локальные переменные рекомендуется называть короткими именами, такими как
i,j для переменных цикла
p для указателя
it для итератора
obj для объекта

Оформление заголовочных файлов

Заголовочные файлы имеют расширение .h Кроме приведенного в примере, конечно должны быть комментарии.
#ifndef _INDICATORLOGIC_H
#define _INDICATORLOGIC_H
// -------------------------------------------------------------------------
#include <objects/AbstractLogic.h>
#include <UniSetTypes.h>
#include <global_macros.h>
// -------------------------------------------------------------------------
namespace UniWidgets
{
class Indicator;
class IndicatorLogic : public AbstractLogic
{
public:
    IndicatorLogic();
    explicit IndicatorLogic(Gtk::EventBox::BaseObjectType* gobject);
    virtual ~IndicatorLogic();

    virtual void connect();
protected:
    /* Methods */
    virtual void on_init();                     
private:
    /* Variables */
    Indicator* current_indicator_;                  
    /* Methods */
    void constructor();
    void init_value();
    void set_value(const double value);             
    void set_current_value();                   
    /* Handlers */
    void sensor_handler(UniSetTypes::ObjectId sensor, UniSetTypes::ObjectId node, float value);
    void set_sensor_handler();

    DISALLOW_COPY_AND_ASSIGN(IndicatorLogic);
    /* Properties */
    ADD_PROPERTY( value_ai, UniSetTypes::ObjectId )
    ADD_PROPERTY( node, UniSetTypes::ObjectId )
};

}

Оформление cpp-файлов

Кроме приведенного в примере, конечно должны быть комментарии.
#include "IndicatorLogic.h"
#include "SimpleObject.h"
#include "Indicator.h"
#include "types.h"
#include <uniwidgets/ConfirmSignal.h>
// -------------------------------------------------------------------------
using namespace std;
using namespace UniWidgets;
using namespace UniWidgetsTypes;
using namespace UniSetTypes;
// -------------------------------------------------------------------------
#define INDICATORLOGIC_VALUE_AI         "value-ai"
#define INDICATORLOGIC_NODE         "node"
// -------------------------------------------------------------------------
#define INIT_INDICATORLOGIC_PROPERTIES() \
    value_ai(*this, INDICATORLOGIC_VALUE_AI, UniSetTypes::DefaultObjectId)\
    ,node(*this, INDICATORLOGIC_NODE , UniSetTypes::DefaultObjectId)
// -------------------------------------------------------------------------
void IndicatorLogic::constructor()
{
    current_indicator_ = NULL;
}
// -------------------------------------------------------------------------
IndicatorLogic::IndicatorLogic() :
    Glib::ObjectBase("indicatorlogic")
    ,INIT_INDICATORLOGIC_PROPERTIES()
{
    constructor();
}
// -------------------------------------------------------------------------
IndicatorLogic::IndicatorLogic(Gtk::EventBox::BaseObjectType* gobject) :
    AbstractLogic(gobject)
    ,INIT_INDICATORLOGIC_PROPERTIES()
{
    constructor();
}
// -------------------------------------------------------------------------
    ...

Документация по UniWidgets. Последние изменения: Fri Oct 10 09:57:50 2014. Создано системой  doxygen 1.5.9