如何将指向数组的指针初始化为成员变量
How to initialize a pointer to an array as a member variable
我试图声明一个成员变量,这是一个未知大小的数组,其中包含指向对象的指针(对象没有默认构造函数)。此外,我希望在显式赋值之前,用NULL
指针填充数组。我该怎么做呢?
这是我到目前为止所做的(不相关的代码被删除):
在。h:
class Column
{
private:
Card **_cards;
qint32 _color;
};
在。cpp中:
Column::Column( qint32 color )
:
_color( color )
{
_cards = new Card[Card::maxValue()];
}
下面是相关的编译错误:
error: no matching function for call to ‘Card::Card()’
error: cannot convert ‘Card*’ to ‘Card**’ in assignment
你可以这样做:
class Column
{
private:
Card **_cards;
qint32 _color;
};
Column::Column( qint32 color )
: _cards(new Card *[Card::maxValue()])
_color( color )
{
for (size_t i=0; i!=Card::maxValue(); ++i) {
_cards[i] = 0;
}
}
,当然,使用std::vector
会更好:
class Column
{
private:
std::vector<Card *> _cards;
qint32 _color;
};
Column::Column( qint32 color )
: _cards(Card::maxValue(),0)
_color( color )
{
}
相关文章:
- 分段错误 - 读取初始化指针的数组
- 初始化指针的常量向量
- 初始化指针或引用成员变量以指向另一个成员
- C++初始化指针/引用/复制细微差别
- 使用无效指针初始化指针声明符的行为是否未定义?
- 在一行中初始化指针(新uint8_t[高度*宽度*3])
- 如何使用可变模板初始化指针?
- 初始化指针时出现写入访问冲突
- C 错误,带有卷曲括号的字面初始化指针
- 重新初始化指针是一种不好的做法吗?
- 初始化指针?C
- 初始化指针向量的向量
- 如何在类函数中正确初始化指针
- C++初始化指针会使应用程序随机崩溃
- 初始化指针结构 - 内存中的外观
- 如何使用struct构造函数在结构中初始化指针阵列
- 在一行中声明并初始化指针到类实例
- 分配数组与初始化指针
- QT 中的非初始化指针
- 使用地址值初始化指针