我試圖將一個陣列的指標分配給nullptr。
class ToyBox
{
private:
玩具 *toyBox[5] 。
int numberOfItems;
public:
ToyBox()
{
this-> numberOfItems = 0;
this-> toyBox = {}.
}
}
在this->toyBox中的this拋出一個錯誤:
運算式必須是一個可修改的lvalueC/C (137)
有什么建議可以改正的嗎?
uj5u.com熱心網友回復:
你只能以這種方式初始化陣列。給陣列分配一個值。但是在建構式中,你可以/必須使用成員初始化串列:
class ToyBox
{
private:
玩具 *toyBox[5] 。
int numberOfItems;
public:
ToyBox() :
toyBox{nullptr} 。
, numberOfItems(0)
{
}
};
對于C ,最好使用
std::array而不是原始的C-Array。
相關。CppCoreGuidlines。ES.27/p>
class ToyBox
{
private:
std::array<Toy*, 5> toyBox;
int numberOfItems;
public:
ToyBox() 。
toyBox({nullptr})
, numberOfItems(0)
{
}
};
或者(我認為)更好:
ToyBox() : numberOfItems(0)
{
std::fill(toyBox.begin(), toyBox.end(), nullptr) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/315434.html
標籤:
