看代码:
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模板类的时候,方法一可行,请问方法二该怎么改呢?