gpt4 book ai didi

visual-c++ - 为什么C++ CLI在托管类型上没有默认参数?

转载 作者:行者123 更新时间:2023-12-03 23:17:34 27 4
gpt4 key购买 nike

下一行有错误Default argument is not allowed

public ref class SPlayerObj{
private:

void k(int s = 0){ //ERROR
}
}


为什么C ++在托管类型上没有默认参数?
我想知道是否有解决此问题的方法。

最佳答案

它确实具有可选参数,只是看起来与C ++语法不同。可选参数是语言互操作问题。它必须由进行调用的语言来实现,它会生成实际上使用默认参数的代码。对于像C ++ / CLI这样的旨在简化互操作的语言,这是一个棘手的问题,您当然不知道将使用哪种语言进行调用。或者,即使它具有可选参数的语法。例如,C#语言直到版本4才出现。

如果该语言支持,则该编译器如何知道默认值。值得注意的是,VB.NET和C#v4选择了不同的策略,VB.NET使用属性,C#使用modopt。

您可以在C ++ / CLI中使用[DefaultParameterValue]属性。但是您不应该,the outcome是不可预测的。

关于visual-c++ - 为什么C++ CLI在托管类型上没有默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15454394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com