It depends on your array and how you assign the object.
If the array is declared as TypeA myArray[10]; and you assign your object using myArray[0] = *NewObject; then the object in the array will be a sliced copy of *NewObject of type TypeA.
If the array is declared as TypeA* myArray[10]; (probably your intention) and you assign your object using myArray[0] = NewObject; then the array will contain a pointer to the same object pointed by NewObject, of course of type TypeB.
That said, you should probably consider using std::vector<std::unique_ptr<TypeA>> rather than a raw array. It will make your code simpler and safer.