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

Object not copying. What can I do to copy them?

我正在尝试用 C++ 编写一个足球队寄存器 class (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);

这是我在团队 Class

中的复制构造函数
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];
}

有没有做错什么?

您正在将元素从 tempTeams 复制到 teams;应该是反过来的。

std::vector 会自动为您完成所有这些工作。

你应该改变

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

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

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