Definitions.hpp:
#ifndef DEFINITIONS_HPP
#define DEFINITIONS_HPP
#define SQUARES_NUM 120
#define SQ120_INDEX_TO_SQ64_INDEX(S, A, R) (S - (A + (R * 2)))
#define SQ64_INDEX_TO_SQ120_INDEX(S, A, R) (S + (A + (R * 2)))
typedef unsigned long long uint_64;
enum
{
    EMPTY, WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, WhiteKing, BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen, BlackKing
};
enum
{
    FILE_A, FILE_B, FILE_C, FILE_D, FILE_F, FILE_G, FILE_H, FILE_NONE
};
enum
{
    RANK_1, RANK_2, RANK_3, RANK_4, RANK_5, RANK_6, RANK_7, RANK_8, RANK_NONE
};
enum
{
    A1=21, B1, C1, D1, E1, F1, G1, H1,
    A2=31, B2, C2, D2, E2, F2, G2, H2,
    A3=41, B3, C3, D3, E3, F3, G3, H3,
    A4=51, B4, C4, D4, E4, F4, G4, H4,
    A5=61, B5, C5, D5, E5, F5, G5, H5,
    A6=71, B6, C6, D6, E6, F6, G6, H6,
    A7=81, B7, C7, D7, E7, F7, G7, H7,
    A8=91, B8, C8, D8, E8, F8, G8, H8, NO_SQ
};
enum {WHITE, BLACK, BOTH};
static int Square120toSquare64[SQUARES_NUM] { };
static int Square64toSquare120[64] { };
#endif
Definitions.cpp
#include "Definitions.hpp"
#include <iostream>
void InitSquare120ToSquare64()
{
    int square = NO_SQ;
    int square64 = 0;
    for (int i = 0; i < SQUARES_NUM; i++)
    {
        Square120toSquare64[i] = 65;
    }
    for (int j = 0; j < 64; j++)
    {
        Square64toSquare120[j] = 121;
    }
    for (int RANK = RANK_1; RANK <= RANK_8; RANK++)
    {
        for (int FILE = FILE_A; FILE <= FILE_H; FILE++)
        {
            square = SQ64_INDEX_TO_SQ120_INDEX(square64, A1, RANK);
            Square120toSquare64[square] = square64;
            Square64toSquare120[square64] = square;
            square64++;
            std::cout << square << " ";
        }
    }
}
InitEngine.hpp
#ifndef INIT_ENGINE_HEADER_HPP
#define INIT_ENGINE_HEADER_HPP
#include "Definitions.hpp"
class InitEngine
{
public:
    InitEngine();
    ~InitEngine();
public:
    void InitChessEngine();
};
#endif
InitEngine.cpp
#include "InitEngine.hpp"
InitEngine::InitEngine()
{
    Square64toSquare120[1] = 1;
}
InitEngine::~InitEngine()
{
}
void InitEngine::InitChessEngine()
{
    InitSquare120ToSquare64();
}
ChessEngine.cpp
#include <iostream>
#include "InitEngine.hpp"
int main()
{
    InitEngine InitTEngine;
    InitTEngine.InitChessEngine();
    Square64toSquare120[2] = 65;
    for (int i = 0; i < 64; i++)
    {
        if (i % 8 == 0) std::cout << "\n";
        std::cout << Square64toSquare120[i] << " ";
    }
}
Output will be this(see picture):
So, the problem is, that I can't change valuse of elements of an Arrays static int Square120toSquare64 and static int Square64toSquare120 nowhere, except of Main function - calling a function InitSquare120ToSquare64() in InitChessEngine method of InitEngine class gives no changes of elements of arrays, but it has console output of array fulled with zeros, but I evem hadn't initialize array Square64toSquare120 with zeros... I tried to change 1 element of this array in constructor of InitEngine class, but it is not working too. Only Square64toSquare120[2] = 65; in Main function gives visible result. In adoption, for loop in InitSq120ToSq64 function having 64 iterations, but only 56 itertions seen in console output(output of this starts with 21). I don't know what is wrong and can't even imagine what is happening, so I hope You help me. Thank You :)

 
    