传统上,类可以提供“拷贝构造函数” CRType::CRType(const CRType& x) {...} 和 “拷贝赋值操作符” CRType& CRType::operator=(const CRType& x) {...}。这些函数会在多种情况下使用,例如通过 CRType oDesti(oSource); 定义 oDesti(其中 oSource 已经定义为一个 CRType 对象)。如果 CRType 是某种自定义容器,那么这两个函数通常通过深拷贝所有包含的项来实现,这可能是计算上昂贵的操作。

在现代软件中,这些操作被“移动构造函数”和“移动赋值操作符”函数所补充,它们仅通过传递有效负载句柄来实现。函数重载可以区分“移动构造函数”和“拷贝构造函数”,因为移动构造函数的参数类型是“右值引用CRType&&

Last modified: Tuesday, 28 January 2025, 12:39 AM