复制值从一个void **到C 复制构造函数中的另一个void **
Copy values from one void** to another void** in C++ copy constructor
我需要在复制构造函数中复制值。但是我的复制构造函数不起作用
typedef void* Vptr;
class Vector
{
int sz;
Vptr* elemsArray;
public:
Vector(const Vector& src) : sz{src.sz}, elemsArray{new Vptr[src.sz]}
{
Vptr lp,rp;
for (int i = 0; i < this->sz; i++) {
lp = this->elemsArray[i];
rp = src.elemsArray[i];
*lp=*rp; // compiler doesn't like this line!!!
}
}
};
如何复制值而不使用std::copy
?
您缺少星号和间接。
Vector(const Vector& src) : sz{src.sz}, elemsArray{new Vptr[src.sz]}
{
Vptr *lp, *rp;
for (int i = 0; i < this->sz; i++) {
lp = &(this->elemsArray[i]);
rp = &(src.elemsArray[i]);
*lp=*rp;
}
}
当然,编译器抱怨,您正在尝试复制void
s。没有类型的信息可以使副本成为可能。
我也看不到lp
和rp
的所有"聪明"。只需直接复制:
Vector(const Vector& src) : sz{src.sz}, elemsArray{new Vptr[src.sz]}
{
for (int i = 0; i < this->sz; i++) {
this->elemsArray[i] = src.elemsArray[i];
}
}
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 使用strcpy将char数组的元素复制到另一个数组
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在c++类上调用void函数
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 复制列表初始化的隐式转换的等级是多少
- 在派生函数中指定void*参数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 复制值从一个void **到C 复制构造函数中的另一个void **
- 重载运算符 = 返回 void 是否不可能成为复制赋值运算符
- 如何在C++中从void指针复制数据
- 如何在c++中将数组char复制到字符串或int*(void*)中
- 使用malloc和一个void指针复制一个临时结构
- 如何从指向void的指针复制结构体
- 无法使用统一初始化复制 std::vector<std::function<void ()>>。这是对的吗?