c++模板和java泛型之间有何不同

解法:

c++模板和java泛型之间有何不同_第1张图片c++模板和java泛型之间有何不同_第2张图片

/**MyClass.h**/
template class MyClass{
public:
static int val;
MyClass(int v){ val = v; }
};
/**MyClass.cpp**/
template
int MyClass::bar;
template class MyClass < Foo > ;
template class MyClass < Bar > ;
/**main.cpp**/
MyClass* foo1 = new MyClass(10);
MyClass* foo2 = new MyClass(15);
MyClass* bar1 = new MyClass(20);
MyClass* bar2 = new MyClass(35);
int f1 = foo1->val;//等于15
int f2 = foo2->val; //等于15
int b1 = bar1->val;//等于35
int b2 = bar2->val;//等于35

c++模板和java泛型之间有何不同_第3张图片

你可能感兴趣的:(程序员面试金典第5版)