将结构成员名称传递给C ++中的函数

时间:2017-11-17 01:51:53

标签: c++ function structure

这是一个不起作用的基本代码。

struct s_date {
   int day;
   int month;
   int year;
} date;

void showMonth(date.month);

int main()
{

cout << "Enter a number";
cin >> date.month;

showMonth(date.month);

return 0;
}

void showMonth(date.month) {
switch (date.month) {
    case 1:
    cout << "January";
    break;

    //...
    }
}

如何将特定结构成员名称(例如date.month)传递给此处所示的函数?

2 个答案:

答案 0 :(得分:4)

您的showMonth()功能结构错误。它需要更像这样:

struct s_date {
   int day;
   int month;
   int year;
} date;

void showMonth(int month);

int main()
{
    cout << "Enter a number";
    cin >> date.month;

    showMonth(date.month);

    return 0;
}

void showMonth(int month) {
    switch (month) {
        case 1:
            cout << "January";
            break;
        //...
    }
}

答案 1 :(得分:0)

C ++不像Java,C#,Python,Ruby等人那样具有反思性。语言。所以你必须自己提供字符串(例如&#34; date.month&#34;)但是你需要与实际的结构定义同步。