template<class T>class a{
4 public:
5 a(T t1):value(t1){}
6 static a<T> aa;
7 static int go;
8 T value;
9 static T gone;
10 };
11 template<class T> int a<T>::go = 1;
12 template<class T> T a<T>::gone = 1;//一般只有具体的时候才有意义的
void f1(){
15 char val1=11;
16 short val2 = 12;
17 int val3 = 13;
18 long val4 = 14;
19 a<char> a0(val1);
20 a<int> a1(val2);
21 a<short> a3(val3);
22 a<long> a4(val4);
23
24 }
class b{
26 public:
27 b(int i):size(i){value = new int [size];}
28 private:
29 int size;
30 int *value;
31 };
32 void f2(){
33 b b1(100);//用户自己创建
34 b b2(b1);//编译默默为你创建的
b b3= 123;//合法的
35 if(b1 == b2){//这个相等是有错误的,因为没有定义相等运算符
36 cout << "equal" << endl;
37 }
38 }