アフィリエイト広告を利用しています

広告

posted by fanblog

2018年01月21日

《その248》 クラステンプレートの初歩的事項の再確認(続き)


 クラステンプレート

 前回《247》のときに作った4種類のオブジェクトのうち、
C<C<double> >型のオブジェクトについては、まず C<double>型のオブジェクトを作成してから、それを使って、C<C<double> >型のオブジェクトを作りました。

 今回は、C<C<int> >型のオブジェクトを、前回の C<C<double> >型 のときのように二段階にわけて作るのではなく、一段階で作ることにします。


#include <iostream>
using namespace std;

// クラステンプレート C
template <class Type> class C {
Type val;

public:
// コンストラクタ
C(Type v = Type())
: val(v) { }

// ゲッタ
Type get() const { return val; }

// ゲッタ かつ セッタ
Type& get() { return val; }
};


int main() {
cout << "(1) 「 C<C<int> > a; 」\n";
C<C<int> > a;
// コンストラクタに与える引数を省略しているので、
// コンストラクタ
// C(Type v = Type()) : val(v) { }
// において、
// Type v = Type()
// は、
// C<int> v = C<int>()
// となるので、val(v) により、
// C<int> val は C<int>()で初期化され
// ます。
//
// ここで、C<int> val の初期値 C<int>() は、
// 初期値を与えずに定義した C<int> 型
// のオブジェクトですから、
// コンストラクタ
// C(Type v = Type()) : val(v) { }
// において、
// Type v = Type()
// は、
// int v = int()
// となるので、val(v) により、
// int val は int() すなわち 0 に初期
// 化されます。


cout << " int val … " << a.get().get() << '\n';
cout << " " << typeid(a).name() << "\n\n";


cout << "(2) 「 C<C<int> > b(10); 」\n";
C<C<int> > b(10);
// 引数として 10 が与えられたので、
// コンストラクタ
// C(Type v = Type()) : val(v) { }
// において、Type v = 10
// すなわち、C<int> v = 10
// よって、コンストラクタにより、
// C<int> val は、C<int>(10) で初期化され、
// int val は 10 で初期化されることになりま
// す。


cout << " int val … " << b.get().get() << '\n';
cout << " " << typeid(b).name() << "\n\n";

cout << "参考 : int() … " << int() << '\n';
}

f09_0012.png



この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/7222970
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック

 たまに、クリック お願いします m(_ _)m

 AA にほんブログ村 IT技術ブログ C/C++へ

こうすけ:メール kousuke_cpp@outlook.jp

【1】★★C++ 記事目次★★ ← 利用可能です。
・新版明解C++入門編 / 新版明解C++中級編
・その他 C++ 関連記事

【2】★★こうすけ@C#★★
・C# の初歩的な記事


検索
<< 2018年08月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
プロフィール
こうすけさんの画像
こうすけ

 たまに、クリック お願いします m(_ _)m

 AA にほんブログ村 IT技術ブログ C/C++へ

こうすけ:メール kousuke_cpp@outlook.jp

【1】★★C++ 記事目次★★ ← 利用可能です。
・新版明解C++入門編 / 新版明解C++中級編
・その他 C++ 関連記事

【2】★★こうすけ@C#★★
・C# の初歩的な記事


×

この広告は30日以上新しい記事の更新がないブログに表示されております。