The problem with this is that power index should be a whole number
unlike pow() which returns a double from two doubles. btw Smac do you mean this?
if ( _pow <= 0 )
return 1;
If your design produces the correct answer, then the only thing it may need is just efficiency.
Actually, using recursion will overload the stack for large values. That's why recursion shouldn't be used only when strictly necessary. However, it's not going to give a longer execution time if the given input consists of low numbers.
In order to make it more efficient I recommend changing the actual recursion with a for loop.