C++拷贝构造函数和浅拷贝

bar*_*tek 3 c++

假设我有一个具有许多显式(静态分配)成员的类和几个动态分配的指针.

当我在巫婆中声明一个复制构造函数时,我会手动分配成员的深层副本,我不想复制每个静态分配的成员explicite.

如何在显式复制构造函数中使用隐式(默认)复制构造函数?

Nik*_*sov 5

使用遏制:

class outer
{
public:

    outer( const outer& other ) :
        members_( other_.members_ ),
        pmember_( deep_copy( other.pmember_ ))
    {}

    // DON'T FORGET ABOUT THESE TOO

    outer& operator=( const outer& );
    ~outer();

private:

    struct inner
    {
        inner( int i, float f ) :
            int_( i ), float_( f )
        {}

        int   int_;
        float float_;
    };

    inner      members_; //< direct members
    something* pmember_; //< indirect member
};
Run Code Online (Sandbox Code Playgroud)