Lee's answer is correct.
The reason is that in order to be able to call new T() you need to add a new() constraint to your type parameter:
void Add<T>() where T : new()
{
     ... new T() ...
}
You also need a constraint T : A so that you can add your object of type T to a List<A>.
Note: When you use new() together with other contraints, the new() constraint must come last. 
Related
- Constraints on Type Parameters