类模板友元类以及友元类模板

 1 /* 类模板友元类以及友元类模板 */
 2 
 3 #include<iostream>
 4 
 5 using namespace std;
 6 
 7 template<class T> class myclass;// 类的存在说明
 8 class runit;// 类的存在说明
 9 template<class T> class runall;// 类的存在说明
10 
11 template<class T>
12 class myclass
13 {
14 public:
15     myclass(T x,T y):a(x),b(y)
16     {
17         
18     }
19 
20     //friend class runit;
21      friend class runall<T>;// 声明友元类模板
22 private:
23      T a;
24      T b;
25 };
26 
27 
28 template<class T>
29 class runall
30 {
31 public:
32     myclass<T> *p;
33     void set(T a,T b)
34     {
35         p = new myclass<T>(a,b);
36         //p->a = a;
37         //p->b = b;
38         cout << p.a << " " << p.b << endl;
39     }
40 };
41 
42 
43 class runit
44 {
45 public:
46     myclass<double> my1 = myclass<double>(18.2,19.3);// 类可以初始化
47 
48     void set()
49     {
50         my1.a = 12.9;
51         my1.b = 18.9;
52         cout << my.a << " " << my1.b << endl;
53     }
54 };
55 
56 void main()
57 {
58     
59     runit it;
60     it.set();
61 
62     cin.get();
63 }
64 
65 //---------------------------------------------------------
66 
67 void main()
68 {
69 
70     runall<double> *p = new runall<double>;
71     p->set(12.9,19.7);
72 
73     cin.get();
74 }

 

posted on 2015-06-12 16:10  Dragon-wuxl  阅读(138)  评论(0)    收藏  举报

导航