如何解决C++ 为什么对常量的引用是一件事?
考虑通过常量和引用常量传递参数
[assembly: ExportRenderer(typeof(Xamarin.Forms.TimePicker),typeof(TimePickerDialogCustomrenderer))]
namespace App1.Droid
{
class TimePickerDialogCustomrenderer : TimePickerRenderer
{
private readonly Context _context;
public TimePickerDialogCustomrenderer(Context context) : base(context)
{
_context = context;
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.TimePicker> e)
{
base.OnElementChanged(e);
}
TimePickerDialog dialog;
protected override TimePickerDialog CreateTimePickerDialog(int hours,int minutes)
{
dialog = new TimePickerDialog(_context,Resource.Style.TimePickerTheme,this,hours,minutes,false);
return dialog;
}
}
}
常量已经表示该值不会改变。那为什么程序员需要指定是按值传递参数还是按引用传递参数?
这个优化不应该是编译器做出的决定吗?
例如,如果参数是原始类型,例如 T function(T const x) {}
T function(T const& x) {}
或 char
,那么生成一个副本供函数使用更划算。
如果是复杂类型的参数,例如 int
或 std::string
甚至是用户定义的参数,函数通过引用来处理它更划算。
然而,这些决定并不是程序员必须做出以任何方式影响性能的妥协的困境。
在我看来,对常量的引用是多余的。声明一个参数具有常量性质就足够了,编译器应该处理是按值还是按引用传递它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。