﻿# V515\. The 'delete' operator is applied to non\-pointer\.

В коде оператор delete применяется не к указателю, а к объекту класса\. С большой вероятностью это является ошибкой\.

Рассмотрим пример кода:

```cpp
CString str;
...
delete str;
```

Оператор 'delete' можно применить к объекту типа CString,так как класс CString может быть автоматически приведен к указателю\. Подобный код может привести к исключению или неопределенному поведению программы\.

Корректный код, возможно должен был выглядеть так:

```cpp
CString *pstr = new CString;
...
delete pstr;
```

В некоторых случаях применение оператора 'delete' к объектам класса не является ошибкой\. Подобный код, например, можно встретить при работе с классом QT::QBasicAtomicPointer\. Анализатор игнорирует вызов операnора 'delete' для объектов этого типа\. Если Вы знаете другие подобные классы, применение к которым оператора 'delete' является стандартной практикой, то сообщите нам о них\. Мы добавим их в исключения\.