昨日、水分を取り忘れていたらしく二日酔い寸前のような状態になりました。こりゃダルいっす。
先日のテンプレートクラスの続きです。テンプレートはマクロみたいなもので、オブジェクトの宣言時にインスタンス化されます。先日の例だとb.cppではBのクラスを宣言していないので、b.oに何もコードが出力されません。a.cppではBを宣言していますが、a.cppでインクルードしているb.hにはコードがかかれていないので、結局Bのインスタンス化はされません。Cはコードが書いてあるのでインスタンス化されます。
ヘッダにコードを全て書いてしまうか、それは汚いから嫌、どうしてもコードとヘッダを分離したいとなれば、明示的にテンプレートクラスを具現化してやらなければいけません。b.cppの先頭に、
template class vector<int *>;
このように明示的にインスタンス化を行わないと、リンカでコケます。ま、こんなことしたら全然テンプレートの意味ないんですけどねー!!はっはっは。あー使えねー。
< | 2005 | > | ||||
<< | < | 01 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | - | - | 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 | - | - | - | - | - |
合計:
本日:
管理者: Katsuhiro Suzuki(katsuhiro( a t )katsuster.net)
This is Simple Diary 1.0
Copyright(C) Katsuhiro Suzuki 2006-2023.
Powered by PHP 8.2.15.
using GD bundled (2.1.0 compatible)(png support.)