实验5 静态成员、友元、对象成员
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五静态成员、友元、对象成员
1、实验目的:
1)掌握静态数据成员的定义及使用;
2)掌握静态成员函数的定义及使用。
3)掌握友员函数的定义和使用。
4)理解对象成员的概念
5)掌握对象成员的初始化方法
2、实验内容:
2.1 分析下面的程序,指出程序运行的结果。
1) P132习题3.14,3.15,3.20,3.23,3.24,3.25,3.26
代码:
3.14
#include
class B{
public:
B(){
}
B(int i,int j)
{x=i;
y=j;
}
void printb()
{cout< } private: int x,y; }; class A{ public: A() { } A(int I ,int j); void printa(); private: B c; }; A::A(int i,int j):c(i,j) { } void A::printa() {c.printb(); } int main() {A a(7,8); a.printa(); return; } 程序运行结果: 7,8 3.15 程序代码: #include class A{ public: void set(int i,int j) {x=i; y=j; } int get_y() {return y; } private: int x,y; }; class box{ public: void set(int l,int w,int s,int p) {length=l; width=w; label.set(s,p); } int ger_area() {return length*width; } private: int length,width; A label; }; int main() {box b; b.set(4,6,1,20); cout< return 0; } 程序运行结果: 24 3.20 程序代码: #include class aclass{ public: aclass() {total++; } ~aclass() {total--; } int gettotal() {return total; } private: static int total; }; int aclass::total=0; int main() {aclass o1,o2,o3; cout< p=new aclass; if(!p) {cout<<"Allocation error\n"; return 1; } cout< cout<<"objects in existence after allocation\n"; delete p; cout< cout<<"objects in existence after allocation\n"; return 0; } 程序运行结果: 3 objects in existence 4 objects in existence after allocation 3 objects in existence after allocation 3.24 程序代码: #include class N{ private: int A; static int B; public: N(int a) { A=a; B+=a; } static void f1(N m); }; void N::f1(N m) {cout<<"A="< cout<<"B="< } int N::B=0; int main() {N P(5),Q(9); N::f1(P); N::f1(Q); return 0; } 程序运行结果: A=5 B=14 A=9 B=14 3.26 程序代码: