[CPP Moudle 07] Templates
4569 ワード
1.関数テンプレート(function template)
テンプレート(template):テンプレートとは、パラメータタイプに基づいて関数またはクラスを生成するメカニズムです.テンプレートはパラメータで表されるため、パラメトリックタイプとも呼ばれます.関数テンプレートを使用して、異なるタイプで実行される関数を一度に定義します.template <typename T>
void Swap(T& a, T& b)
{
T temp;
temp = a;
a = b;
b = temp;
}
template <typename T>
T& min(T& a, T& b)
{
if (a < b)
return a;
else
return b;
}
2.クラステンプレート
関数テンプレートは、機能のみを定義し、タイプを定義しない関数の一般化です.クラステンプレート(class template)もクラスの一般化である.クラステンプレートを定義すると、タイプに応じてクラスを作成できます.
クラステンプレートは、テンプレート引数を宣言する必要があります.インスタンスを作成するプロセスには、ジェネレータを呼び出す前にオブジェクトにメモリが割り当てられているため、理由があります.したがって、テンプレート引数が明示的に作成されていない場合は、オブジェクトを作成できません.template<typename T>
class Test
{
private:
T value_;
public:
Test(T value) : value_(value) {};
}
int main(void)
{
Test<int> t_int(42); // 템플릿 인수 명시
Test<std::stding> t_string("hello"); // 템플릿 인수 명시
}
テンプレート-クラステンプレート(class template)
Reference
この問題について([CPP Moudle 07] Templates), 我々は、より多くの情報をここで見つけました
https://velog.io/@24siefil/CPP-Moudle-07
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
template <typename T>
void Swap(T& a, T& b)
{
T temp;
temp = a;
a = b;
b = temp;
}
template <typename T>
T& min(T& a, T& b)
{
if (a < b)
return a;
else
return b;
}
関数テンプレートは、機能のみを定義し、タイプを定義しない関数の一般化です.クラステンプレート(class template)もクラスの一般化である.クラステンプレートを定義すると、タイプに応じてクラスを作成できます.
クラステンプレートは、テンプレート引数を宣言する必要があります.インスタンスを作成するプロセスには、ジェネレータを呼び出す前にオブジェクトにメモリが割り当てられているため、理由があります.したがって、テンプレート引数が明示的に作成されていない場合は、オブジェクトを作成できません.
template<typename T>
class Test
{
private:
T value_;
public:
Test(T value) : value_(value) {};
}
int main(void)
{
Test<int> t_int(42); // 템플릿 인수 명시
Test<std::stding> t_string("hello"); // 템플릿 인수 명시
}
テンプレート-クラステンプレート(class template)Reference
この問題について([CPP Moudle 07] Templates), 我々は、より多くの情報をここで見つけました https://velog.io/@24siefil/CPP-Moudle-07テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol