I believe the compiler is doing a bit of optimisation for you, rather than calling the default constructor on
test
and the calling the assignment operator, it just calls the copy constructor.
If you had
OList MyList(5);
OList MyOtherList;
MyOtherList = MyList;
where the OList had already been constructed, then the assignment operator would be called.