2018年01月26日
《その257》 通常クラス内のクラステンプレート(1)
メンバクラステンプレート(クラスの内部で定義)
クラスの内部で、クラステンプレートの定義を行うことができます。
※クラスの内部で宣言を行い、定義を外部で行うこともできます(次回)。
以下はプログラムです。
#include <string>
#include <iostream>
using namespace std;
class C {
// クラス内部で定義された メンバクラステンプレート
template <class Type> class Inside {
public:
Type t; // データメンバ
Inside(Type x) // コンストラクタ
: t(x) { }
Type get() const { return t; }
};
public:
// Inside<string>型オブジェクトの宣言
Inside<string> in_1;
// Inside<int>型オブジェクトの宣言
Inside<int> in_2;
// コンストラクタ
C(string s, int i) : in_1(s), in_2(i) { }
void f() {
cout << in_1.t << ' '
<< in_2.t << '\n';
}
};
int main() {
C obj("abcdef", 999);
cout << obj.in_1.get() << '\n';
cout << obj.in_2.get() << '\n';
obj.f();
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7242211
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック