c++ - 需要帮助 struct-void 错误:不允许类型名称
问题描述
我创建了一个 struct 和 void 函数。我想用 void abc 在 struct xyz 中写出年龄和姓名。但我不明白我在案例 1-2 部分出现错误
不允许使用类型名称
#include <iostream>
using namespace std;
struct xyz {
int age = 20;
string name = "name";
};
void abc() {
int num;
cin >> num;
switch (num) {
case 1: cout << xyz.age << endl;
return;
case 2: cout << xyz.name << endl;
return;
}
}
int main()
{
for(;;)
abc();
}
解决方案
你必须做这样的事情 -
#include <iostream>
using namespace std;
struct xyz {
int age = 20;
string name = "name";
};
void abc() {
xyz myStruct;
int num;
cin >> num;
switch (num) {
case 1: cout << myStruct.age << endl;
return;
case 2: cout << myStruct.name << endl;
return;
}
}
int main()
{
for(;;)
abc();
}
另一种选择是这样的 -
#include <iostream>
using namespace std;
struct xyz {
int age;
string name;
};
void abc() {
xyz myStruct{20, "name"};
int num;
cin >> num;
switch (num) {
case 1: cout << myStruct.age << endl;
return;
case 2: cout << myStruct.name << endl;
return;
}
}
int main()
{
for(;;)
abc();
}
推荐阅读
- drupal-8 - 如何使用 drupal 8 以编程方式在自定义块内呈现自定义表单?
- python - 使用 pandas 组内的多个条件检查值是否存在
- c - 关于 C 中内存使用的问题
- c++ - 我正在尝试制作一个自平衡机器人,但编译时出错。我不知道如何解决它
- spring - 不使用注释的 Spring MVC 重定向
- maxima - Maxima 中 Maple “unapply”或 Mathematica “Function”的模拟
- c# - 在水晶报表中循环导出为 PDF
- android - 在 QListView 中禁用编辑光标
- scala - aggregateByKey 方法在 spark rdd 中不起作用
- c# - 使用 .NET 核心从 REST API 获取数据