0

一个类T应提供一个成员函数,该函数将一些但不是所有成员变量(最小示例:只有一个变量X)从一个类型的对象复制T到另一个类型的对象T。有两种可能的解决方案,复制和复制

class T {
    some_type X;
    [...]
    void copy_X_from_other( const T& other ) { X = other.X; }
    void copy_X_to_other  ( T& other ) const { other.X = X; }
};

有理由更喜欢一种变体而不是另一种吗?是否有指导方针、最佳实践示例或任何其他内容?

函数应该如何命名?一个理想的名称应该比 短得多copy_(from|to)_other,但不要怀疑复制的方向。

4

1 回答 1

0

尝试只复制一个属性是一件非常奇怪的事情,但我不是一个质疑这一点的人。

为什么不这样做:

void copy_<property_name>( const T& other ) { <property_name> = other.get_<property_name>; }

这将遵循复制分配的标准,该标准被定义为

T& operator=(const T& other)
{
    //copy
    //return
}

如您所见,接收方也在左侧。

除此之外,我认为没有任何标准可以尝试仅复制另一个对象的一个​​属性。

于 2016-01-07T12:23:43.507 回答