实验四 静态成员与友元

本文介绍C++中的静态成员和友元,包括它们的特性、作用及如何初始化和调用。通过实例解析了静态数据成员与非静态成员的区别,以及友元函数的定义和使用。实验内容涉及静态成员的共享性质、友元函数的访问权限和调用方式,强调了在编程实践中理解和应用这些概念的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验目的和要求

 了解成员函数的特性,掌握静态成员、友元等概念。

实验内容

1、调试下列程序,写出输出结果,并分析输出结果。

程序如下:

//sy4_1.cpp
#include<iostream>
using namespace std;
class My
{
public:
    My(int aa)
    {
        A=aa;
        B-=aa;
    }
    static void fun(My m);
private:
    int A;
    static int B;
};
void My::fun(My m)
{
    cout<<"A="<<m.A<<endl;
    cout<<"B="<<B<<endl;
}
int My::B=100;
int main()
{
    My p(6),Q(8);
    My::fun(p);
    Q.fun(Q);
    return 0;
}

程序运行结果如下:


结果分析如下:

       程序分析:非静态数据成员从属于某个对象,而静态数据成员从属于整个类。 执行语句 1 调用构造函数,使得对象 P ,Q 的数据成员 A 的值分别是 6 和 8,因 此 fun( )中输出数据成员A的值分别是6和8。 数据成员B的值的初始值是100,执行语句1,创建对象P时,B的值改变为94,再创建对象Q时,B的又有被修改为86,因此fun( )中输出数据成员B 的值都是86。

2、分析并调试程序,完成下列问题。

   //sy4_2.cpp

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值