gpt4 book ai didi

c++ - 错误使用 typedef 的 typedef(?)

转载 作者:太空宇宙 更新时间:2023-11-04 16:11:17 28 4
gpt4 key购买 nike

我对书中的代码有疑问:

const int SQUARE_ARRAY_SIZE = 4;
const int SQUARE_INFO_SIZE = 4;
typedef Square SquareArray[SQUARE_ARRAY_SIZE];
typedef SquareArray SquareInfo[SQUARE_INFO_SIZE];

SquareArray RedGeneric = { Square(0, 0), Square(0, 1),
Square(1, 1), Square(1, 0) };
SquareInfo RedInfo = { &RedGeneric, &RedGeneric, \\problem here
&RedGeneric, &RedGeneric };

它大喊:

error C2440: 'initializing' : cannot convert from 'SquareArray (*)' to 'Square'

IntelliSense: no suitable constructor exists to convert from "SquareArray *" to "Square"

据我了解,SquareInfo 代表 SquareArray 数组,但 vs2013 似乎想将其分解为 Squares,结果

SquareInfo m_squareInfo; ...
SquareArray* pSquareArray = m_squareInfo[m_iDirection];

大喊:

IntelliSense: a value of type "const Square *" cannot be used to initialize an entity of type "SquareArray *"

这本书是 2008 年的,我不知道那时候它是否有效,或者从一开始就有错误。至于 q,请告诉我真正的问题是什么以及如何让它工作。

最佳答案

我很确定这本书是用来写的

typedef SquareArray* SquareInfo[SQUARE_INFO_SIZE];
// ^

SquareInfo 是指向 SquareArray 的指针数组,而不是 SquareArray 的数组。这与使用 &RedGenericSquareArray* pSquareArray = m_squareInfo[m_iDirection]; 的初始化一致。

关于c++ - 错误使用 typedef 的 typedef(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416976/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com