模板类的实例化问题,,,

看代码:

 a.h:

template
class A
{
public:
virtual void Print() = 0;
};

 b.h:

#include "a.h"
#include

template
class B:public A
{
public:
B();
B(T t) :data(t){}
void Print(){ std::cout << "Class B print the value of data:" << data << std::endl; }
private:
T data;
};

 main.cpp:

#include
using namespace std;
#include "b.h"

//template
//struct s
//{
// T data;
// T array[3];
//};

void main()
{

/*方法一:
B<int> *b1 = new B<int>(3);
b1->Print();*/

//方法二:
B b2;
b2.Print();

system("pause");

}

实例化B模板类的时候,方法一可行,请问方法二该怎么改呢?