制作一个复制构造函数,用于创建输入对象的深层副本(使用数组)

时间:2013-03-01 19:26:38

标签: c++ copy-constructor

我需要使用复制构造函数对输入对象进行深层复制。我非常困难......

到目前为止我的代码:

class stringCS   
{   
public:    
     stringCS();
     stringCS(const stringCS &other);

private:
     char *input;
};


stringCS::stringCS(const stringCS &other)
{
}

如何制作深层照片?我知道我需要使用for循环来遍历数组中的所有字符,将其复制到另一个数组中,并在末尾使用null终止符,但我不理解参数或原始数组的来源。

编辑:

我绝不会找人给我代码。我正在寻找更多关于我的问题的伪代码/答案的内容。我不知道如何开始复制,因为我不理解参数。

1 个答案:

答案 0 :(得分:1)

这应该做的工作:

class stringCS   
{
private:
    string input;
public:    
    stringCS(const string& other) : input(other)
    {
    }
};

如果你需要使用cstrings,这个骨架可能会让你走上正轨

class stringCS   
{
public:    
    stringCS();
    stringCS(const stringCS &other);
    {
        // a) input is a pointer, allocate enough memory
        // you will need to know the size of other (strlen() + 1)
        ...

        // b) copy character by character from `other.input` to `input` in a loop
        // do not forget the final '\0'
        ...
    }
private:
    char *input;
};