exponenta event banner

Правило AUTOSAR C++ 14 A2-8-2

Имя файла реализации должно отражать логический объект, для которого оно предоставляет определения.

Описание

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

Имя файла реализации должно отражать логический объект, для которого оно предоставляет определения.

Объяснение

Имя файла реализации, совпадающее с именем объекта, определенного в этом файле, делает структуру проекта более понятной, а код - более читаемым.

Внедрение Polyspace

Polyspace ® проверяет имя файла реализации по имени соответствующих определенных типов, таких какclass или struct, или namespace имена. Если имена не совпадают, Polyspace помечает первый символ в первой строке файла реализации.

  • Сравнение имен не учитывает регистр. Например, myclass матчи myClass.

  • Сравнение имен игнорирует:

    • Символ подчеркивания "_'. Например, myclass матчи my_Class.

    • Префикс символовC', 'M', 'T«, или символ суффикса»T'. При сравнении игнорируются символы префикса или суффикса, но не оба. Например, myclass матчи CmyClass и myClass_T, но не CmyClass_T.

    • Символ дефиса-в именах файлов. Например, файл с именем my-class.cpp соответствует class названный myClass_.

Polyspace не проверяет файл, в котором выполняется реализация main().

Поиск неисправностей

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

Примеры

развернуть все

username.h

#include <string>

class User
{
public:
	User();
    User(std::string s);
    std::string getUser();

private:
    std::string user;
};

username.cpp

#include "username.h" // Non-compliant

User::User() : user("") { }
User::User(std::string s): user(s) {}
std::string User::getUser()
{
	return user;
}

В примере имя файла реализации username.cpp не соответствует, поскольку не соответствует имени класса (User), определенный в этом файле.

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

Группа: Лексические конвенции
Категория: Консультации, неавтоматизированные
Представлен в R2021a