标题:[求助]参数传递问题
只看楼主
norlan
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-5-3
 问题点数:0 回复次数:2 
[求助]参数传递问题
#include<iostream.h>
class A
{
int i;
static int x;
public:
static int y;
A(int a,int b,int c)
{i=a,x=b,y=c;}
void print()
{cout<<"i="<<i<<'\t'<<"x="<<x<<'\t'<<"y="<<y<<endl;}
};
int A::x=0;
int A::y=0;
void main()
{
cout<<"y="<<A::y<<endl;
A a(11,22,33);
a.print();
A b(100,200,300);
a.print();//这行的结果为什么是11,200,300呢
b.print();
A::y=400;
b.print();
}
搜索更多相关主题的帖子: int 参数 void static 
2007-06-02 22:34
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
得分:0 

应为 x,和y是静态成员,所以,它不属于任何一个类对象,只属于对本身,所以你在多申明几个A类的对象,它的成员 x,和y也只会有一个副本,而成员i,你申明一个a对象,那么就会有一个a的副本,在申明一个b对象, 那么b也会产生一个a副本,x和y副本还是只有一个,换句话说就是所有类对象共享成员 x,和y


2007-06-03 01:08
norlan
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-5-3
得分:0 
明白了,x,y所有对象共享,而i每个对象有每个对象的副本

thank you~
2007-06-03 23:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-144410-1-1.html




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

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