// main.cpp ここからmainファイル
#include <iostream>
using namespace std;
#include "test.h"

int main()
{
X<double> x;
x.show();
return 0;
}
// ここまでmainファイル

上記の三つのファイルに対して

(1)これらをmake&コンパイルすると次のようなエラーが出る
Error: 外部シンボル 'X<double>::~X<double>()' が未解決
Error: 外部シンボル 'X<double>::X<double>(int)' が未解決
Error: 外部シンボル 'X<double>::show()' が未解決

(2)テンプレートにせずに具体的な型を指定(例えばint型の配列とする)
してやれば正常にmake&コンパイル出来る

(3)三つのファイルを一つにまとめてしまえば(もちろん余分な#include <…>は消して)
正常にコンパイル出来る

という状況です。(2),(3)から分割コンパイルにおけるテンプレートの文法のみが
おかしいのだとわかるのですが、どこを修正すれば良いのかわかりません。
どなたかご指導おねがいいたします。