复制构造函数C++中自定义类的动态数组
Dynamic array of a custom class in a copy constructor C++
我正在尝试通过在另一个类中定义该类的指针来创建我创建的类的动态数组,然后当我创建第二个类的复制构造函数时,IDE 告诉我指针类型不兼容
class myClass2 {
private:
int *size;
string name;
myClass1 *list;
...
public:
myClass2(const char &name,const int size);
...
};
myClass2::myClass2(const char &name,const int size){
...
this->size = new int(size);
myClass1 * pArray[size];
for(int i = 0; i < size; i++){
pArray[i] = new myClass1();
}
list = pArray; //FIXME:incompatible pointer type
};
你写过:
myClass1 *list;
这意味着list
的值将是 myClass1 对象的地址。 在《myClass2
》的构思中,你写道:
list = pArray;
但pArray
不是myClass1
对象的地址。 您的pArray
是一个用于包含myClass2*
的数组。所以你得到了错误incompatible pointer type
.
您正在尝试从 MyClass1 类型指向 MyClass2 类型。这就是存在不兼容类型错误的原因。要么为 MyClass2 扩展 MyClass1,要么使用多态性。Myclass1 * pArray[size];
PS :建议使用堆栈来存储变量,除非它不是本地的。你可以做到,
int size;
this->size = size;
相关文章:
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 输出没有重复元素的动态数组(收缩数组)C++
- 正在插入动态数组
- 如何在动态数组上使用搜索函数
- C++ 动态数组每次添加时将大小增加 1 - 错误
- 静态数组的自由动态数组
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 使用 thread 类在 C++ 中构造线程的动态数组时出错
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- 为什么 c++ 动态数组的大小没有改变?
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 指针的 C++ 动态数组 - 何时需要使用它?
- 删除动态数组时未定义标识符
- 哈希映射使用 nullptr c++ 初始化节点的动态数组
- 如何将字符串和整数读取到两个单独的动态数组中的程序编写?
- 动态数组的 C++ 重载加运算符
- 基于数组的列表 - 动态数组创建时出错