网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月06日漏签0天
c++吧 关注:618,006贴子:2,111,184
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 3回复贴,共1页
<<返回c++吧
>0< 加载中...

这是为什么啊啊啊啊啊

  • 只看楼主
  • 收藏

  • 回复
  • 1049117121
  • ||
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
class
{
int A;
static int B;
public:
sample(int a){A=a,B+=a;}
static void func( sample s);
};
void sample::func(sample s);
{
cout<<”A=”<<s.A<<”,B=”<<B<<endl;
}
int sample::B=0;
void main()
{
sample s1(2),s(5);
sample::func(s1);
sample::func(s2);
}
为什么输出的是A=2,B=5
A=2,B=7
为什么s1和s2有关联?
static int B是static为什么有表达式B+=a
而且 int sample::B=0不是已经初始化B了吗,为什么输出B=7


  • 1049117121
  • ||
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
错了两个B都是7


2025-06-06 05:09:06
广告
  • 1049117121
  • ||
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
A=2 B=7
A=5 B=7


  • 剑剑的小跟班
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<iostream>
using namespace std;
class sample
{
int A;
static int B;
public:
sample (int a)
{A=a,B+=a;}
static void func(sample s);
};
void sample::func(sample s)
{
cout<<"A="<<s.A<<",B="<<B<<endl;
}
int sample::B=0;
void main( )
{
sample s1(2),s2(5);
/*首先实例化s1,此时会调用构造函数 s1.A为2,B为2;然后实例化s2,此时调用构造函数 A为s2.A=5,B为 B=2+5,即7;这里正是因为你说的那个已经定义静态数据成员 所以维护的是同一个B,所以 B=2+5,,而不是B=5;*/
sample :: func(s1);//然后调用func函数 输出s1.A 为2 B为7
sample :: func(s2);//然后调用func函数 输出s2.A 为5 B为7
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示