You could look into deriving a class from TArray, and overwriting some of the methods, but that may or may not work and get ugly, and if all you want is convenience in the first place I don’t think it’s worth the hassle. The best and easiest solution is just to write a method in the class wherever that Array lives, and manage it in there like this for example:
void AddTask(UMyQuestTask* newTask){
Tasks.Add(newTask);
bIsTaskCompleted.Add(false);
}
Edit: I also don’t think it’s a good idea to manage this with a new setter for TArray, because this functionality has nothing to do with TArray itsself. I would be very supprised to find some weird on-of method in TArray that is for specifically linking two Array of a specific type. TArray is supposed to be generic, and if you would hard-code your use case in there you would lose that. Since most of these methods are also probably not virtual, you would get very dirty behaviour if you only have the base class pointer and such … it would be a mess.