| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 404 人关注过本帖
标题:有一点问题
只看楼主 加入收藏
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
快速回复:有一点问题
数据加载中...
 
   



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

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