实验5 静态成员、友元、对象成员

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

程序代码:

相关文档
最新文档