A couple of things:
Big Oh, or O(x) notation, is a notation that implies the upper bound in asymptotic notation, meaning more generically, what is typically considered the "guaranteed run time", meaning that the algorithm can never exceed this value.
So when it is written that the solution to this equation is O(n^3), let's examine why:
for(int i = 0; i < n; ++i)
{
The above statement is looping through every item in n, meaning that the algorithm can never exceed n: giving us O(n).
Within that loop, meaning for every n:
for (int j = 0; j < i; ++j)
We are also looping through i, so we are now effectively looping n twice.
If n is a simple array n = {1, 2, 3, 4} then array[0] = 1, array [1] = 2, etc.
So as we loop through n in the first for loop, array[i] = 1, then i increments, and then array[i] = 2, etc.
However, the second for loop is now looping through i, so for every time i does anything, the second for loop kicks off.
If i is going to loop through n, and j will loop through i, then we can effectively say j is also going to loop through n. So that is another case of O(n), since we are guaranteed the second for loop will iterate no more than n times.
This is the exact same case with the third for loop
for (int k = 0; k < i * i; ++k)
For the reasons listed above, k is looping through i as well, and we know that i will iterate no more than n times, and that k will iterate no more than i times, so transitively, k will iterate no more than n times, giving us another O(n)
Just like basic arithmetic, O(n) * O(n) * O(n) = O(n^3)
Hopefully this helps.