c++中的默认实参有一些特殊的属性
Default Argument in C++ have some special properties?
这是面试试题,不是家庭作业。测试已经完成了。
下面哪个关于c++默认实参的陈述是正确的?
A. Default Argument cannot be of a user-defined type.
B. Default Argument can never precede non-default arguments
C. Default Argument cannot be of pointer type.
D. Default Argument exist in global heap not function's stack
E. Default Argument are not considered for generating the function's signature.
我选了B和e,这些正确吗?我不确定D,对吗?
B为真。A, C, D为假。
E需要澄清。这取决于"生成函数的签名"是什么意思。
对于编译器来说,签名就是签名。默认参数只在调用函数时起作用。这就是替换默认值的地方。因此,函数具有编写时使用的签名。
如果"生成函数的签名"意味着"函数的c++签名是什么",那么签名并不关心参数是否为默认值。但是,如果"生成函数的签名"意味着"如何调用它",那么它确实关心默认值。
A, C, D都是绝对错误的。B是正确的。我对E不太确定,我总是忘记
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 如何使用默认参数等选择模板专业化
- 具有默认模板参数的多态类的模板推导失败
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 初始化具有非默认构造函数的std::数组项的更好方法
- 修改"参数视图属性"面板 (5.7.0) 上的默认属性
- property_tree:无法设置默认属性值
- 成员属性作为方法的默认值
- 默认声明的属性?(状态设计模式)
- Visual Studio 2010 默认属性表似乎在调试和发布配置下都链接在一起,这是怎么回事?
- 使用类属性值作为方法默认参数的替代方法
- 是否有任何方法可以使用c++ libgraph为子图设置默认节点属性?
- 类初始化-属性没有默认构造函数
- c++中的默认实参有一些特殊的属性
- 如何获得RapidJSON模式来处理默认属性
- 属性类型未知的模板类中的默认构造函数
- c++类默认属性
- 错误C2512:没有合适的默认构造函数可用-如果在构造函数中初始化属性,为什么