假设您没有在您显示的代码之外做一些病态的事情,您的声明是复制初始化,并且该规则的第二部分适用:
13.3.1.3 Initialization by constructor [over.match.ctor]
1 When objects of class type are direct-initialized (8.5), or copy-initialized from an
expression of the same or a derived class type (8.5), overload resolution selects the
constructor. For direct-initialization, the candidate functions are all the constructors
of the class of the object being initialized. For copy-initialization, the candidate
functions are all the converting constructors (12.3.1) of that class. The argument
list is the expression-list within the parentheses of the initializer.
对于一个简单的测试用例,请参阅 Eli Bendersky 的帖子,在这里:http ://eli.thegreenplace.net/2003/07/23/variable-initialization-in-c/