预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共27页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

3.9.1静态数据成员注classA {public: A(intx,inty)//构造函数 {a=x; b=y; } ~A(){}//构造函数 voidgetXY()//成员函数 {cout<<"X="<<a<<'\t'<<"Y="<<b<<endl;} voidgetSUM() //成员函数 {sum=sum+a+b;cout<<"SUM="<<sum<<endl;} private: inta,b; staticintsum;//静态数据成员声明 }; intA::sum=0;//静态数据成员在类体外的初始化 voidmain() {Aa1(1,2);a1.getXY();a1.getSUM(); Aa2(3,4);a2.getXY();a2.getSUM(); }例如:#include<iostream.h> classA {public: staticintx;//声明公有的静态数据成员 }; intA::x=10; voidmain() { cout<<A::x<<endl; A::x=20;//通过类名访问静态数据成员 cout<<A::x<<endl; }#include<iostream.h> classA {public: A(intx1,intx2) { x=x1; y=y+x2;} ~A(){} staticvoidfun1(){cout<<“Y=”<<y<<endl;}//静态成员函数 staticvoidfun2(Aa);//声明静态成员函数 private: intx; staticinty; }; voidA::fun2(Aa) {cout<<"X="<<a.x<<'\t'<<"Y="<<y<<endl;} intA::y=0;//静态成员初始化 voidmain() {Aa(1,2); a.fun1();//通过对象名访问 A::fun2(a);//通过类名访问 }#include<iostream.h> classA //声明类A {public: voidmemberfun(intx);//成员函数 }; classB //声明类B {public: B(){}//构造函数 B(intx1)//构造函数 {x=x1;} ~B(){}//析构函数 voidgetX()//成员函数 {cout<<"X="<<x<<endl; } friendvoidfun(); //友元函数声明 friendvoidA::memberfun(intx);//友元函数声明 private: intx; };voidA::memberfun(intx)//A类的成员函数,也是B类的友元函数 { Bb(0);//声明B类的对象b,初始值为0 cout<<"X="<<b.x<<endl; b.x=x; cout<<"X="<<b.x<<endl; } voidfun() { Bb(10);//声明B类的对象b,初始值为10 cout<<"X="<<b.x<<endl; } voidmain() { fun();//调用友元函数 Aa;//声明A类的对象a a.memberfun(100);//调用友元函数 }classDate {private: intyear,month,day; public: Date(inty,intm,intd) {year=y;month=m;day=d;} friendclassClock;//声明Clock类为Date类的友元类 }; classClock//声明Clock类 {public:voidShowNowDate(Date&now);}; voidClock::ShowNowDate(Date&now) {cout<<now.year<<“年”<<now.month<<“月”<<now.day<<“日”;} voidmain() {DateNowDate(2008,10,8);//声明Date类的对象 ClockmyClock;//声明Clock的对象 myClock.ShowNowDate(NowDate); }模板(templates)一、模板(Templates)的概念。一、模板(Templates)的概念。一、模板(Templates)的概念一、模板(Templates)的概念类模板为了起到模板的作用,与函数模板一样,定义一个类模板时必须将某些数据类型作为类模板的类型参数。 模板类的实现代码与普通类没有本质上的区别,只是在定义其成员时要用到类模板的类型参数。 例如,以下定义了含有一个类型参数的类模板:如果在模板类的外部定义模板类的成员函数,必须采用如下形式: template<