标题:有一点问题
只看楼主
fateboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-5-21
 问题点数:0 回复次数:6 
有一点问题

#include<iostream.h>
class T
{
public:
/**********found**********/
T(int x):a(x){b+=x;}
/**********found**********/
static void display(T c)
{ cout<<"a="<<c.a<<"\t"<<"b="<<c.b<<endl;}
private:
const int a;
static int b;
};
/**********found**********/
int T::b=5;
void main()
{
T A(3),B(5);
T::display(A);
T::display(B);
}


这一句是什么意思啊? T(int x):a(x){b+=x;}

搜索更多相关主题的帖子: private display include public 
2006-09-19 15:07
fateboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-5-21
得分:0 

还不明白的是为什么输出是:a=3 b=13
a=5 b=13

2006-09-19 15:19
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
得分:0 
T(int x):a(x){b+=x;}
先将a为x...接着b=b+x;
那么A(3) 后,a=3,b=5+3=8;
接着B(5);
a为x,b为b+x;由于b为static 所以,b=8+5=13;
接着T::display(A);
就是 3,13
5,13了//注意b是static

2006-09-19 16:40
fateboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-5-21
得分:0 
谢楼上了
2006-09-19 21:16
fateboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-5-21
得分:0 
还有一点问题啊
static void display(T c)
{ cout<<"a="<<c.a<<"\t"<<"b="<<c.b<<endl;}
c不是类的一个对象吗?她怎么能用cout<<"a="<<c.a<<"\t"<<"b="<<c.b<<endl;调用Private成员
2006-09-19 21:21
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 
display()是成员函数 当然可以操作同一个类里的变量
但如果你在类外边直接调用a或b当然是不可以的

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-09-19 21:42
fateboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-5-21
得分:0 
thank you
2006-09-20 07:22



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




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

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