The copy constructor for a class is called____________.

a. when an object of the class is passed by value to a function.
b. when an object of the class is initialized by another object of the class.
c. when a function returns an object of the class.