这是一个不起作用的基本代码。
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)传递给此处所示的函数?
答案 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;)但是你需要与实际的结构定义同步。