if(key='B'){
Bird b("blue");
}
// Bird object 'b' ceases to exist here
the Bird object 'b' you created on the stack will be destroyed as soon as you leave the scope in which it was made. If you're going to create objects that must exist beyond the scope in which they were created, you can make them using new (and you will then be responsible for destroying them with delete).
Using a vector or other such container as firedraco suggests will keep you from having to manage this yourself.