类模板友元类以及友元类模板
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) 收藏 举报
浙公网安备 33010602011771号