﻿# V3173\. Possible incorrect initialization of variable\. Consider verifying the initializer\.

Анализатор обнаружил потенциальную ошибку, связанную с тем, что пропущена инициализация переменной или свойства\.

Рассмотрим это на примере:

```cpp
class A
{
  int field1;
  string field2;
  string field3;
  ....
  public void foo(int value)
  {
    field1 = value;
    field2 =                    // <=
    field3 = GetInitialization(value);
  }
}
```

В данном примере разработчик отложил инициализацию поля 'field2' в надежде на то, что этот код не скомпилируется, и тем самым напомнит о пропущенной инициализации\. Но в данном случае код будет успешно скомпилирован\. Полю 'field2' будет присвоено значение поля 'field3'\.

Похожая ситуация может возникнуть во время декларации, например:

```cpp
int b, c;

int a = 
b = c = 2;
```

Этот код выглядит очень подозрительно\. Непонятно чем хотели инициализировать переменную 'a'\.

Анализатор не будет выдавать предупреждение в ряде случаев, когда понятно, что код написан подобным образом специально\.

Например, есть отступы относительно первой строки:

```cpp
var1 =
  var2 = 100;
```

Другой пример, если нет отступа, но подобным образом значение записывается в несколько переменных:

```cpp
var1 =
var2 =
var3 =
var4 = 100;
```