セクション 1. 章 3
single
C++で最初のテンプレートを作成する
メニューを表示するにはスワイプしてください
異なる型をテンプレートに指定した場合に何が起こるかを確認します。これには typeid().name() を使用します。これは変数のデータ型を表示するものです。以下の例を参照してください。
main.cpp
1234567#include <iostream> int main() { int x = 5; std::cout << typeid(x).name(); }
ノート
上記のコードスニペットは、コンソールに i を表示します。これは x が int 型であることを示しています。
<typename Type> を使用してテンプレートを作成し、特定の変数を指定する代わりに Type を関数のパラメータとして渡します。
main.cpp
12345678910111213#include <iostream> template<typename Type> void check_type() { std::cout << typeid(Type).name() << std::endl; } int main() { // Try to change `int` to different type check_type<int>(); }
ご覧の通り、テンプレート関数を呼び出す際に角括弧内で型を指定すると、typename パラメータがその型を受け取ります。テンプレートパラメータの名前は、その型の別名として機能します。
また、関数本体内でそのテンプレートパラメータを使用して、同じ型の変数を宣言することもできます。
main.cpp
12345678template<typename Type> void create_variable() { Type value; // Variable of the template type value = Type(); // Default initialization std::cout << value << std::endl; }
タスク
スワイプしてコーディングを開始
swap関数をテンプレート関数に変換:templateキーワードを使用してテンプレートを定義;- テンプレートパラメータのリストを追加;
- テンプレート用のパラメータを1つ追加。
- すべての型(
int)をテンプレートパラメータのtypenameに変更。 - テンプレート関数を呼び出し、型として
charを渡し、main関数内で2つの変数を入れ替え。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 3
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください