c++ - 有效地 const_cast-ing 常量引用参数

标签 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);
    // ...
}

你能比较一下这两种形式吗?哪个在速度和内存使用标准方面更好?

最佳答案

第一个版本复制对象。第二个版本没有。所以第二个版本会更快,除非你想复制。

顺便说一句,所有以下划线开头后跟大写字母的标识符都保留供编译器使用。您不应该使用像 _BObject 这样的变量名。

关于c++ - 有效地 const_cast-ing 常量引用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004283/

相关文章:

c++ - 常量之间的区别。指针和引用?

PHP变量访问数组中的变量

c++ - c++中 vector 的clear()和erase()方法之间的区别?

c++ - 在boost中为动态数组定义自定义步进器

r - k-NN 示例中的错误准确度度量

database - Laravel - 从 URI 获取参数并根据该参数接收数据库信息

mysql - 无法解析接近的表名

c++ - 如何在 Qt 上的应用程序标题栏上添加带有上下文菜单的按钮?

c++ - 有条件地实例化一个具有已删除的默认构造函数的类

sql - 创建在 Azure Databricks 中传递日期以进行查询的小部件