私は宿題をするのに問題があります。 ((最大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;
};
あなたが見るように、従業員/人の名前を印刷する関数に渡されるタイプによって異なります。 私の質問は: どのようにデータの種類に応じて動作するようにコンピュータを指示することができます。 typeがヒトである場合
cout << employee.h.name << endl;
:typeが従業員である場合、私は意味
cout << human.name << endl;
代わりに直接印刷 'employee'と' human'(そのウェル、 'const'参照)上にオーバーロードされた関数から印刷名前を持ちます。通常のルールが適用されます:余分な間接的なレベルで問題が解決されます。 C++ 17では 'if constexpr'を使うことができましたが、実際には利用できません。 –
*最大sort_param.useテンプレートプログラミングで人間/従業員の名前を表示するプログラムを書く*関数/プログラムへの入力とは何ですか? –
タイプを知る必要がある場合、テンプレートは間違ったアプローチです。代わりに関数をオーバーロードする必要があります。 DietmarKühlのように小規模でも – StoryTeller