Конструктор копирования будет вызываться в трех случаях:
When an object is returned by value
When an object is passed (to a function) by value as an argument
When an object is thrown
When an object is caught
When an object is placed in a brace-enclosed initializer list
будет вызываться оператор присваивания, когда ниже:
B b;
b=a;
поэтому ваше утверждение:
Base b = Base();
не подходит ни для одного из вышеперечисленных.