c++ - 在 if 语句中声明时如何访问类对象?(在 C++ 中)
问题描述
这是我的代码:
if (action == "create") {
gymMembership object;
object.name = nameInput;
object.num = numInput;
object.month = 0;
object.print();}
if (action == "extend") {
object.month += monthInput;
object.print();}
但上线 object.month += monthInput;
我收到此错误:error: 'object' was not declared in this scope
请注意,所有这些都在一个while循环中,不知道它是否有任何区别
解决方案
如果你想在两个if
语句中使用它,你需要在它们之外声明它:
gymMembership object;
if (action == "create") {
object.name = nameInput;
object.num = numInput;
object.month = 0;
object.print();
}
if (action == "extend") {
object.month += monthInput;
object.print();}
否则,它会在第二个碰到第一个时超出范围}
。
我已经尝试过了,但是对象将丢失其名称和编号的值,并且只有月份的值
所以你想做的可能是这样的:
gymMembership object;
if (action == "create") {
object.name = nameInput;
object.num = numInput;
object.month = 0;
object.print();
}
if (action == "extend") {
object.name = nameInput;
object.num = numInput;
object.month += monthInput;
object.print();
}
不过,现在我开始怀疑您的创作策略是否存在更大的问题。也许我们需要一个更大的例子来说明你想要完成的事情。但我离题了...
编辑:查看您的代码(您在评论中发布的代码),您实际上在做的更像是这样的:
while (true) {
gymMembership object;
if (action == "create") {
object.name = nameInput;
object.num = numInput;
object.month = 0;
object.print();
}
if (action == "extend") {
object.month += monthInput;
object.print();
}
}
您似乎想要做的实际上是将其放在 while 循环之外:
gymMembership object;
while (true) {
if (action == "create") {
object.name = nameInput;
object.num = numInput;
object.month = 0;
object.print();
}
if (action == "extend") {
object.month += monthInput;
object.print();
}
}
否则,object
当循环迭代并丢失存储在其中的所有信息时,它将超出范围。这样,对象将保持在范围内并保留上一次迭代的信息。
推荐阅读
- postgresql - 是否可以从表中选择列,更新它并将更新的数据复制到另一个带有 postgres DB 的表?
- php - 如何在不在php中提交的情况下将隐藏字段值分配给变量
- sas - SAS 代码 - 每行最后 N 行的总和
- java - 在recyclerview中打开项目后分页不起作用 - Android
- javascript - 循环请求与 axios 反应
- php - 删除此管理员后注销管理员用户(laravel 8)
- android - Android Keystore 无法恢复密钥
- c - 我的输出是正确的,但我不明白我的输出
- mailchimp - 使用 mailchimp 发送动态推荐电子邮件
- vim - 来自第 16 章“艰难学习 vimscript”的示例