关于在调用模板函数时实参的使用,下列表述中正确的是

admin2010-12-16  28

问题 关于在调用模板函数时实参的使用,下列表述中正确的是

选项 A、对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略
B、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略
C、对于虚拟类型参数所对应的模板实参,若能够省略则必须省略
D、对于常规参数所对应的模板实参,任何情况下都不能省略

答案D

解析 模板函数的实参可以省略,但模板实参的省略并不是必然的,而是有条件的。在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板实参表(用<和>括起来的参数表)或从模板函数实参表(用()括起来的参数表),模板实参的信息优先于函数实参的信息。如果从后者获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最后的若干个参数,则模板实参表中的那几个参数可以省略。如果模板实参表中的实参都被省略了,则连空表<>也可以不要。反之,对于某个模板实参,如果从模板函数的实参表中无法获得同样的信息,就不能省略;或者虽然能够获得同样的信息,但在它后面还有其他不能省略的实参,则其自身还是不能省略.由此可知只有D) 选项的说法是正确的。
转载请注明原文地址:https://jikaoti.com/ti/AqL0FFFM
0

最新回复(0)