hkB*_*sai 7 c++ parameters reference constants const-cast
我有一个成员函数,它将一个常量引用参数带到另一个对象.我想const_cast这个参数,以便在成员函数中轻松使用它.为此,以下哪个代码更好?:
void AClass::AMember(const BClass & _BObject)
{
// FORM #1 - Cast as an object:
BClass BObject = const_cast<BClass &>(_BObject);
// ...
}
void AClass::AMember(const BClass & _BObject)
{
// FORM #2 - Cast as a reference:
BClass & BObject = const_cast<BClass &>(_BObject);
// ...
}
Run Code Online (Sandbox Code Playgroud)
你能比较这两种形式吗?在速度和内存使用标准方面哪一个更好?
rob*_*off 13
第一个版本制作对象的副本.第二个版本没有.所以第二个版本会更快,除非你想复制.
顺便说一下,所有以下划线后跟大写字母开头的标识符都保留供编译器使用.你不应该使用像这样的变量名_BObject.
小智 10
第一个没有任何意义,因为你抛弃constness _BObject只是稍后将它作为对BClass构造函数的常量引用传递并创建一个副本,BObject.第二个实现它的意思 - 抛弃constness并保持对原始对象的引用.所以,如果你问我,第二个更好.请注意,虽然这const_cast并不总是安全的.
| 归档时间: |
|
| 查看次数: |
7363 次 |
| 最近记录: |