类中"=="运算符的问题
Issue with "==" operator in a class
我在class room
中的代码有问题。每当我尝试让房间构造函数(如下所示)将字符放在数组ARoom
和ADisc
中,并且它与我尝试使用break
忽略的字符相同,当我使用APrint()
时,所有值都将忽略。
room::room(int Si, int Sd)
{
//makes ADisc and ARoom blank
for(int d=1; d<=25; d++)
{
for(int i=1; i<=78; i++)
{
this->SetSpot(i,d, char(0), "0");
}
}
//this makes some filled
for(int i=1; i<=Si; i++)
{
for(int d=1; d<=Sd; d++)
{
this->SetSpot(i,d, ' ', "0");
}
}
}
setSpot()
void SetSpot(int i, int d, char ch, string disc)
{
int Ni = i-1;
int Nd = d-1;
this->ARoom[Nd][Ni]=ch;
this->ADisc[Nd][Ni]=disc;
}
aprint()
void Aprint()
{
system("CLS");
for(int d=0; d<25; d++)
{
if(this->ARoom[d][0]==char(0))
break;
cout << "[";
for(int i=0; i<78; i++)
{
if(this->ARoom[i][d]==char(0))
break;
cout << this->ARoom[d][i];
}
cout << "]" << endl;
}
int r = 0;
for(int d=0; d<25; d++)
{
for(int i=0; i<78; i++)
{
if(this->ADisc[d][i]=="0")
{
break;
}
else
{
r++;
cout << "[" << r << "," << this->ARoom[d][i] << "]: " << this->ADisc[d][i] << endl;
}
}
}
}
main()
int main()
{
room Spawn(10,10);
Spawn.SetSpot(5,1, char(1), "me");
Spawn.SetSpot(4,1, char(2), "you");
Spawn.Aprint();
}
返回
[ ☻☺ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
Process returned 0 (0x0) execution time : 0.039 s
Press any key to continue.
如果我将if(this->ADisc[d][i]=="0")
更改为 if(this->ADisc[d][i]=="me")
,那么我得到了
[ ☻☺ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[1, ]: 0
[2, ]: 0
[3, ]: 0
[4,☻]: you
[5, ]: 0
[6, ]: 0
[7, ]: 0
[8, ]: 0
[9, ]: 0
[10, ]: 0
[11, ]: 0
[12, ]: 0
[13, ]: 0
[14, ]: 0
[15, ]: 0
它与[1876, ]: 0
相关,但不打印[3,☺]: me
。我该如何修复或解决此问题?
您的问题是使用" break"。"断裂"是一个命令,它突破了当前的循环结构。
当您搜索" 0"(空图块)时,它在看到一个空的一旦取消了整个行的其余版本。
。当您搜索" Me"(播放器瓷砖?)时,它称为" Me"瓷砖时,请跳过" Me"瓷砖的印刷品并取消该行的其余部分的打印,因此没有任何行一个"我"很好。
因此,在这里摆脱休息会阻止这个问题。
~~~
但是,您提到它不是在打印要忽略的角色,但是问题是您的if statement明确地告诉它不是在这种情况下打印瓷砖信息,因此,很难知道您的意图行为是什么。也许您可以在没有IF语句的情况下尝试,并告诉我们是否还有任何问题。
相关文章:
- 一个关于在C++中重载布尔运算符的问题
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 运算符继承和 cpp 核心准则 c.128 的问题
- 在C++中使用重载提取运算符时出现问题
- 移动赋值运算符;尝试引用已删除的函数.我该如何解决这个问题?
- 关于条件块的问题与&&运算符有关
- 重载运算符与添加问题
- 加、乘、除、减复数的问题 C++ - 运算符重载
- 我需要这方面的帮助C++在使用逻辑运算符时是/否问题
- 0xC0000005:访问冲突读取位置 0x00000000. 重载 == 运算符的问题
- 如何解决不明确的运算符过载问题?
- 屏幕插入运算符<<的运算符过载问题
- 如何通过使用 2 位或更多数字的 XOR 运算符来执行此操作C++问题
- 在 C++ 的自定义运算符中删除与删除[](不同于常见的删除与删除[]问题)
- 用户定义的文本运算符(在原始模式下)存在问题
- 关于重载 -> 运算符中 const 关键字的特定位置的问题
- 字符 * 未从重载运算符或内存管理问题正确返回
- constexpr 运算符重载使用参数的问题
- c++中重载输入运算符的问题
- 有趣的问题运算符重载