| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:为什么无论sumnum的值是多少,程序一直输出50
只看楼主 加入收藏
孤狼A组
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:73
专家分:121
注 册:2015-9-8
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:5 
为什么无论sumnum的值是多少,程序一直输出50
#include<iostream>
using namespace std;
class Book
{public:
    Book(int w);
    static int sumnum;
    static void display();
 private:
    int num;
};
Book::Book(int w)
{
  num=w;
  sumnum=120;
  sumnum-=w;
 
}
void Book::display()
{ cout<<Book::sumnum<<endl;}
int Book::sumnum=10000;
int main()
{
  Book b1(20);
  Book b2(70);
  b1.display();
  b2.display();
 
  
  return 0;

}
搜索更多相关主题的帖子: private display public 
2015-11-15 11:48
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:10 
程序代码:
#include<iostream>
using namespace std;
class Book
{public:
    Book(int w);
    int sumnum;
    void display();
private:
    int num;
};
Book::Book(int w)
{
  num=w;
  sumnum=120;
  sumnum-=w;
}
void Book::display()
{
      cout<<sumnum<<endl;
}
int main()
{
  Book b1(20);
  Book b2(70);
  b1.display();
  b2.display();


  return 0;

}

把静态字符删掉就可以了,我也不知道原因,楼主弄清楚了可以告诉我一下
2015-11-15 14:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
不知道楼主想干什么,叫人如何回答?
2015-11-16 08:27
孤狼A组
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:73
专家分:121
注 册:2015-9-8
收藏
得分:0 
回复 3楼 rjsp
我想表达的意思是,sumnum是静态变量,在赋值的时候,每次赋给它不同的值,最后输出的结果应该不一样呀。可为什么每次不同的赋值都得到相同的结果
2015-11-17 14:30
孤狼A组
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:73
专家分:121
注 册:2015-9-8
收藏
得分:0 
回复 2楼 wengbin
在类体外,对静态变量初始化了,但在构造函数里改变了,变量的值,即调用构造函数的时候,sumnum都等于120,sunnum=120-20=100,接着,又调用构造函数,sumnum被赋值为120,,sumnum=120-70=50,最后sunnum=50的值保留不释放,调用b1.display()和b2.display()时,输出最终的sumnum的值50;我把静态变量与常变量搞混了,我以为静态变量的值不允许改变。
2015-11-17 14:56
a853052879
Rank: 2
等 级:论坛游民
帖 子:39
专家分:10
注 册:2015-8-17
收藏
得分:0 
回复 楼主 孤狼A组
在C++中,静态成员函数的初始化,是在类外进行的

清风无泪
2015-11-17 23:38
快速回复:为什么无论sumnum的值是多少,程序一直输出50
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028070 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved