我正在阅读Scott Meyrses C ++,现在是关于passing-reference-to-const
的部分。他说,对于用户定义的类型,通过引用转换为const几乎总是好的,与内置类型不同。
我的问题是为什么应该通过值传递内置类型。为什么效率更高?我认为,他们可以被纳入登记册,但这是唯一的原因吗?
答案 0 :(得分:5)
当你传递一个引用时,它在后面传递一个指针。这比通过整个结构更有效,这可能非常大。
原始类型与指针的大小差不多(最差的可能是指针的两倍)。有些甚至更小 - schemeRegistry.register(new Scheme("https", new TlsSniSocketFactory(), port));
是1个字节,而指针通常是4或8个字节。因此通过引用传递而不是传递值本身没有获得效率。