The first uses the member initializer list. The second is not initializing it is assigning. What that means is using the second method the Objects members are default initialized before it ever reaches the inner portion of the curly braces. Then it assigns the value using the method. Essentially doing double duty.