我的家庭作业有问题。我所面临的问题是这样的: 问题是这样的: ((写,打印人/员工以最大的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;
};
如您所见,打印员工/人员的名称取决于传递给该函数的类型。我的问题是: 如何告诉计算机根据数据类型采取行动。我的意思是,如果类型为员工则:
cout << employee.h.name << endl;
如果类型是人,则:
cout << human.name << endl;
从'employee'和'human'(以及'const'引用)重载的函数打印名称,而不是直接打印。通常的规则适用:额外的间接级别解决了这个问题。使用C++ 17,你可以使用'如果constexpr',但那还不是真的可用。 –
*编写一个程序,用最大的sort_param.use模板编程打印人员/员工的姓名。*函数/程序的输入是什么? –
如果您需要知道类型,模板是错误的方法。您应该重载该函数。即使在较小规模上,像DietmarKühl建议 – StoryTeller