创建自定义" string "(结构)副本
creating custom" string " (struct) copy
我正试图创建一个函数来复制我的卡结构。我一开始只是简单地复制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;
相关文章:
- 如何循环打印顶点结构
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 预处理器:插入结构名称中的前一个行号
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么添加析构函数(甚至是空的)会破坏我的结构,该结构使用 ref 转发和折叠来保存 ref 或值的副本?
- 为什么基于范围的 for 循环中的结构化绑定只是一个副本而不是引用?
- 如何让指针的深层副本将内部结构发送到内核?
- 标准库容器结构是否存储副本或引用?
- Do GCC和Clang优化逐场结构副本
- 结构C 的深副本
- 创建 AVPacket 结构的副本
- 结构中的 CUDA 设备功能指针,没有静态指针或符号副本
- 为什么要根据副本修改源结构
- 构造函数初始化列表中的 C 结构副本C++
- 删除结构的成员,并将其重新制作为其他内容的副本,而不使用 new
- 在使用auto时初始化结构会导致VS 2013中的副本
- 创建自定义" string "(结构)副本
- 如何在不使用副本的情况下更改QJson层次结构中的QJsonObject值
- 面试编码-将指向节点结构的指针作为参数,并返回传入数据结构的完整副本