У меня есть этот код внутри класса:
void SendStones()
{
int currenthole = hole;
int lastplace = 0;
for(int i=0;i<stns.size();i++)
{
while(1)
{//Calculate new currenthole
if (currenthole == 13) { currenthole = 7; break;}
if (currenthole == 14) { currenthole = 6; break;}
if ((currenthole<=12 && currenthole > 7) || (currenthole<=6 && currenthole > 1)) { currenthole--; break;}
}
lastplace = stns.size()-1;
hole[currenthole]->ReciveStone(stns[lastplace]);//PROBLEM
stns.pop_back();
}
}
vector<Stones*> stns;
поэтому он делает эту ошибку: недопустимые типы `int [int] 'для индекса массива
в чем проблема? я не понимаю. Спасибо.
Сократите свой код до наименьшего фрагмента, который четко воспроизведет проблему с минимальным количеством зависимостей от вашего проекта.



Похоже, что отверстие - это простое целое число, и вы пытаетесь присвоить ему индекс. Это то, что вы собираетесь делать? Где объявлена дыра?
Hole действительно большой класс,
SendStones - это функциональный член класса.
Я не буду отправлять весь файл, но могу сказать, что
Отверстие [currenthole] - Отверстие * Отверстие [14];
Это большая программа и проект, поэтому я отправил необходимый код.
Вот код функции ReciveStones:
void ReciveStone (Камень * rcvstone)
{
stns.push_back (rcvstone);
}
Исходя из того, что вы сказали в своем ответе, hole - это указатель на объекты п Hole. Это означает, что ваш код делает не то, что вы думаете.
int currenthole = hole;
Это хранит значение адреса, указывающее на первый объект в вашей коллекции массивов, что означает, что этот код
if (currenthole == 13) { currenthole = 7; break;}
if (currenthole == 14) { currenthole = 6; break;}
if ((currenthole<=12 && currenthole > 7) || (currenthole<=6 && currenthole > 1)) { currenthole--; break;}
это наверное ерунда.
Это не объясняет, почему вы получаете ошибку "недопустимые типы` int [int] 'для индекса массива ". Вы уверены, что нет второго объявления типа int с именем отверстие?
- На самом деле, перечитывая то, что вы написали, я еще больше уверен, что вы делаете не то, что думаете. SendStones является членом класса Hole, верно? Убедитесь, что в вашем классе Hole нет переменной-члена отверстия. Вероятно, это проблема, поскольку она будет найдена перед любой глобальной переменной с именем hole (если я правильно помню свои правила области видимости).
Пожалуйста, отформатируйте свой код как код (
code) или щелкните 101010 после выбора кода) для удобства чтения. Кроме того, на каком языке?