AUTOSAR C++14 Rule A3-3-1

Объекты или функции с внешним редактированием (включая представители именованных пространств имен) должны быть объявлены в заголовочном файле

Описание

Определение правила

Объекты или функции с внешним редактированием (включая представители именованных пространств имен) должны быть объявлены в заголовочном файле.

Объяснение

Если вы объявляете функцию или объект в заголовочном файле, ясно, что функция или объект предназначены для доступа в нескольких модулях преобразования. Если вы намерены получить доступ к функции или объекту из одного модуля перевода, объявите его static или в неназванном пространстве имен.

Поиск и устранение проблем

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

Примеры

расширить все

Этот пример использует два файла:

  • decls.h:

    extern int x;
  • file.cpp:

    #include "decls.h"
    
    int x = 0;
    int y = 0; //Noncompliant
    static int z = 0;

В этом примере переменная x объявлен в заголовочном файле, но переменная y is not. Переменная z также не объявляется в заголовочном файле, но объявляется вместе со static спецификатор и не имеет внешних редактирований.

Проверяйте информацию

Группа: Основные концепции
Категория: Необходимый, Автоматизированный
Введенный в R2019a