如何确定哪种类型传递给模板定义的函数?

时间:2017-03-01 18:47:40

标签: c++ templates structure

我在做作业时遇到了问题。我面临的问题是: 问题是: ((编写一个程序,使用最大sort_param.use模板编程打印人员/员工的姓名。)) 人员和员工的定义如下:

struct human
{
char name[30];
char * family;
int id;
int sort_param;
};

struct employee
{
human h;
char post[50];
int sort_param;
};

如您所见,打印employee / human的名称取决于传递给函数的类型。 我的问题是: 如何根据数据类型告诉计算机采取行动。我的意思是如果类型是员工那么:

cout << employee.h.name << endl;

如果类型是人类,那么:

cout << human.name << endl;

1 个答案:

答案 0 :(得分:1)

使用重载函数,只需使用其中一个参数调用您的函数,这些类型可以是 human employee

void print_name(const employee& emp)
{
     cout << emp.h.name << endl;
}
void print_name(const human& hum)
{
     cout << hum.name << endl;
}

编辑参数。