第一范文网 - 专业文章范例文档资料分享平台

实验七静态成员与友元 

来源:用户分享 时间:2025/6/13 13:16:08 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验七 静态成员与友元

一、实验目的和要求

1. 了解程序运行中变量的作用域、生存期和可见性; 2. 掌握类的静态数据成员与静态函数成员的实现方法; 3. 掌握类的友元关系来实现数据共享;

4. 掌握类的友元函数与友元类的的实现方法。 二、实验设备及分组

1. Windows 7以上操作系统;

2. Visual C++ 2015集成开发环境; 3. PC或台式电脑。 三、实验内容和步骤

1. 验证分析程序

(1)运行如下程序,观察变量x与y的值的变化。 源程序如下:

#include using namespace std; void fun();

int x = 1, y = 2; int main() {

cout << \

cout << \

cout << \ int x = 10, y = 20;

cout << \ cout << \ fun();

cout << \

cout << \

system(\ return 0; }

void fun() {

int y = 200;

cout << \}

(2)设计C++程序,解决王婆卖瓜问题。没卖一个瓜,记录该瓜的重量,所卖瓜的总重量和总数目;同时还允许退瓜。

源程序如下:

#include

using namespace std;

class watermelon {

private: double weight; static double total_weight; static int total_number;

public: watermelon(double w) { weight = w; total_weight += w; total_number++; }

~watermelon() { total_weight -= weight; total_number--; }

void disp() { cout << \ }

static void total_disp() { cout << \ cout << \ cout << \ } };

double watermelon::total_weight = 0.0; int watermelon::total_number = 0;

int main() { watermelon w1(2.1); w1.disp(); watermelon::total_disp();

watermelon w2(6.2); w2.disp(); watermelon::total_disp(); watermelon w3(20.6); w3.disp(); watermelon::total_disp(); system(\ return 0; }

(3)设计C++程序,其中含有3个类,CBank、BBank和GBank,即分别为中国银行类、工商银行类与农业银行类。每个类都包含一个私有数据balance,用于存放储户在改行的存款额,另有一个友元函数total用于计算储户在这3家银行中的总存款数,友元函数max用于计算储户在哪家银行中的存款数最大。

源程序如下:

#pragma warning(disable : 4996) #include #include using namespace std;

class CBank; class BBank; class GBank;

class CBank //中国银行类 { long int balance;

public: CBank() { balance = 0; } CBank(long int b) { balance = b; } void getbalance() { cout << \请输入中国银行存款数: \

cin >> balance; } friend void total(CBank, BBank, GBank); friend void max(CBank, BBank, GBank); };

class BBank //中国工商银行类 { long int balance;

public: BBank() { balance = 0; } BBank(long int b) { balance = b; } void getbalance() { cout << \请输入中国工商银行存款数: \ cin >> balance; } friend void total(CBank, BBank, GBank); friend void max(CBank, BBank, GBank); };

class GBank //农业银行类 { long int balance;

public: GBank() { balance = 0; } GBank(long int b) {

};

}

balance = b;

void getbalance() { cout << \请输入农业银行存款数: \ cin >> balance; }

friend void total(CBank, BBank, GBank); friend void max(CBank, BBank, GBank);

void total(CBank A, BBank B, GBank C) { cout << \总的银行存款数: \}

void max(CBank A, BBank B, GBank C) { long int max; char str[20]; if (A.balance > B.balance) { if (A.balance > C.balance) { max = A.balance; strcpy(str,\中国银行\ } else { max = C.balance; strcpy(str, \农业银行\ } } else { if (B.balance > C.balance) { max = B.balance; strcpy(str, \工商银行\ } else {

搜索更多关于: 实验七静态成员与友元  的文档
实验七静态成员与友元 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9ot9v3u61a4vbt01gdv99bpag891bi0044m_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top