首页 > 解决方案 > 需要帮助 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();
}

标签: c++

解决方案


你必须做这样的事情 -

#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();
}

推荐阅读