创建自定义" string "(结构)副本

creating custom" string " (struct) copy

本文关键字:副本 结构 string 自定义 创建      更新时间:2023-10-16

我正试图创建一个函数来复制我的卡结构。我一开始只是简单地复制cvalue。然而,我的cvalue并没有复制,它仍然在读5,而应该读1000。

#include <iostream>
#include <fstream>
#include <ctime>
#include <stdlib.h>
#include <string>
using namespace std;
//Structs
struct card 
{
    char suit[8];
    char rank[6];
    int cvalue;
    char location;
};
void copyCard(card destination, card source);
int main()
{
    card card1;
    card card2;
    card1.cvalue = 1000;
    card2.cvalue = 5;
    card *card1p = &card1;
    copyCard(card2, card1);
    cout << card2.cvalue << endl;
}
void copyCard(card destination, card source)
{
    card *myPointer;
    myPointer = &source;
    (*myPointer).cvalue = source.cvalue;
    myPointer = &destination;
    destination.cvalue = (*myPointer).cvalue;
}

如果您打算将source复制到目标,那么您可以将source设置为const &(修改它没有意义),并将目标设置为引用或指针。

void copyCard(card& destination, const card& source)
{
  destination = source;
}
int main()
{
  card card1, card2;
  card1.cvalue = 1000;
  card2.cvalue = 5;
  copyCard(card2, card1);
  cout << card2.cvalue << endl;
}

但是,根本没有理由使用copyCard函数。您可以通过简单的分配将card1复制到card2

card2 = card1;