将结构成员名称传递给 C++ 中的函数
Passing a structure member name to a function in C++
这是一个不起作用的基本代码。
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)传递给函数,如此处所示?
C++ 不像 Java、C#、Python、Ruby 等那样具有反射性。语言。因此,您必须自己提供字符串(例如 "date.month"),但是否与实际结构定义同步取决于您。
您的 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;
//...
}
}
这是一个不起作用的基本代码。
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)传递给函数,如此处所示?
C++ 不像 Java、C#、Python、Ruby 等那样具有反射性。语言。因此,您必须自己提供字符串(例如 "date.month"),但是否与实际结构定义同步取决于您。
您的 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;
//...
}
}