gpt4 book ai didi

c++ - 错误 C2065 : But it is for sure declared

转载 作者:行者123 更新时间:2023-11-28 02:15:52 36 4
gpt4 key购买 nike

#include <iostream>
#include <string>
#include <sstream>
#include <ostream>
#include "battleshipgrid.h"
using namespace std;

battleshipgrid::battleshipgrid ()
{
for (int i=0;i < 10;i++)
{
for (int j =0; j<10;j++)
{
waters[i][j]='o';
}

}
}


void battleshipgrid::shotat (position pos, bool hit, char initial)
{
if (hit)
{
waters[pos.getcol()][pos.rowindex()]=initial;
}
if (!hit)
{
waters[pos.getcol()][pos.rowindex()]='x';
}
}

bool battleshipgrid::hit(position pos)
{
if (o.hit(pos))
{
return true;
}
else
{
return false;
}
}

bool battleshipgrid::miss(position pos)
{
if (!o.hit(pos))
{
return true;
}
else
{
return false;
}
}

bool battleshipgrid::empty(position pos)
{
if (waters[pos.getcol()][pos.rowindex()]=='o')
{
return true;
}
else
{
return false;
}

}

char battleshipgrid::boatinitial(position pos)
{
return waters[pos.getcol()][pos.rowindex()];
}

void print ()
{
for (int i=0; i <10;i++)
{
std::cout<<"\n";
for (int j=0;j<10;j++)
{
cout<<waters[i][j]<<" ";
}
}

所以正如你所看到的,我得到的错误是未声明的标识符,这里是确切的错误

error C2065: 'waters': 未声明的标识符

它说 waters 是一个未声明的标识符。如您所知,水已在多个区域使用,我们没有收到有关它们的错误。如果我们注释掉 void print 方法,它会解决所有问题,但我们需要 print 方法。如果你看到我不明白的东西,请告诉我。

最佳答案

waters 显然是 class battleshipgrid 的成员。

在这个函数中,它不是 battleshipgrid 的一部分,您尝试访问成员变量 waters

void print ()  // Not part of class battleshipgrid!
{
for (int i=0; i <10;i++)
{
std::cout<<"\n";
for (int j=0;j<10;j++)
{
cout<<waters[i][j]<<" "; // Trying to access data in class battleshipgrid!
// but without referring to the class or an instance!
}
}
}

另外,这里是您如何简化大量代码的方法:

bool battleshipgrid::hit(position pos)   { return o.hit(pos);  }
bool battleshipgrid::miss(position pos) { return !o.hit(pos); }
bool battleshipgrid::empty(position pos) { return ('o'==waters[pos.getcol()][pos.rowindex()]); }

关于c++ - 错误 C2065 : But it is for sure declared,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052872/

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