我试图创建一个功能来复制我的卡结构。我只需复制cvalue就可以轻松开始。但是,我的cvalue不复制,当应读取1000时仍读取5。
#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;