c++ - 对象不复制。我该怎么做才能复制它们?

标签 c++ oop deep-copy

我正在尝试用 C++ 编写一个足球队注册类 (SocReg),当球队数组已满时,它会将所有数据复制到一个新数组中,再增加 10 个可用空间,销毁现有数组,然后继续工作. 然而,这些似乎没有保存在数组中,只有新的被注册,旧的被复制为“”什么都没有。

Team * tempTeams = new Team[theSize+10];
    for(int i = 0; i < theSize; i++){
        teams[i] = tempTeams[i];
    }
theSize += 10;
delete[] teams;
teams = tempTeams;
unused++;
teams[unused+1] = Team(teamName,color);

这是我在团队类中的复制构造函数

Team::Team(Team& toCopy){
    tName = toCopy.tName;
    tCol = toCopy.tCol;
    unused = toCopy.unused;
    roster = new Player*[50];
    for(int i = 0; i < 50; i++)
        roster[i] = toCopy.roster[i];
}

有没有做错什么?

最佳答案

你应该改变

for(int i = 0; i < theSize; i++){
    teams[i] = tempTeams[i];
}

for(int i = 0; i < theSize; i++){
    tempTeams[i] = teams[i];
}

因为此刻您正在以错误的方向复制数据,有效地存储了空字符串。

关于c++ - 对象不复制。我该怎么做才能复制它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33594560/

相关文章:

c++ - 具有外部定义的默认特殊成员函数

c++ - 如何从 SuperBible 获取 GLTools 库以在 Ubuntu 中工作?还是另一种选择?

java - 尝试从 Java 和 NetBeans 中的 ConfigWindow 在 MainWindow 中设置配置变量

ios - Cocos2d : child already added, 添加2个相似的子项,没有深拷贝

c++ - 实现深拷贝

c++ - 从文本文件中读取并存储到数组 C++

c++ - ASCII 字符数组

java - PlayingCard 类的 Equals 方法,如何开始工作?

使用 std 安全指针相互链接的 c++ 类 (c++)

c# - 如何在 C# 中深度复制矩阵?