| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1311 人关注过本帖
标题:类的静态成员?
只看楼主 加入收藏
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
 问题点数:0 回复次数:9 
类的静态成员?
类的静态成员 中的 静态数据成员 和 静态成员函数  都是怎么用啊 (看书上的有点晕了)
还请 指教 谢谢了  最好 能 举例说明一下
搜索更多相关主题的帖子: 静态 成员 函数 数据 举例 
2008-03-08 14:42
tszhao
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-3-4
收藏
得分:0 
给你举个例子吧!
#include <iostream>
using namespace std;
class time
{
public:
    time(int,int);
    static int hour;    //hour是一个静态数据成员。它的初始化只能在类外进行初始化。
    int minute;
    int second;
    void display();
};
time::time(int m,int s):minute(m),second(s){};
int time::hour=15;
void time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
int main()
{
    time t1(06,20),t2(10,30);
    cout<<t1.hour<<endl;     //通过对象引用静态数据成员。
    cout<<t2.hour<<endl;     //同上。
    cout<<time::hour<<endl;  //通过类名引用静态数据成员。
    t1.display();
    t2.display();
    return 0;
}


//静态数据成员不属于对象,只是属于类,不随对象的建立而建立,也不随对象的撤销而释放内存空间。自己独立开辟一块空间,为每个类对象所共同拥有。

我是笨鸟,但是,我想飞的更高点!~~
2008-03-08 15:11
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
对于公有静态成员用类名或对象名访问都是一样的,私有的要用函数访问...
非静态成员函数可以访问静态变量和函数..但是静态函数却只能访问静态得,或访问实例对象

学习需要安静。。海盗要重新来过。。
2008-03-08 15:22
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
谢谢  楼上的两位的回答
把静态数据成员声明为私有时 怎么来调用 通过对象引用静态数据成员 还是 通过类名引用静态数据成员?
再有就是 声明为静态的数据成员和静态的成员函数 与 非静态的 有什么去别
再次谢谢了
2008-03-08 20:15
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
私有的时候可以通过成员函数来访问(使用前要初始化)。。。对象和类名都可以引用静态数据成员

#include <iostream>
using namespace std;
class time
{
private:
    static int hour;  
public:
    time(int,int);
    int minute;
    int second;
    void display();
};
time::time(int m,int s):minute(m),second(s){};
int time::hour=15;
void time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
int main()
{
    time t1(06,20),t2(10,30);
    //cout<<t1.hour<<endl;     //通过对象引用静态数据成员。
    //cout<<t2.hour<<endl;     //同上。
    //cout<<time::hour<<endl;  //通过类名引用静态数据成员。
    t1.display();
    t2.display();
    return 0;
}
静态的函数可以用来控制private得类型的构造函数实例。。
#include <iostream>
using namespace std;
class time
{
private:
    static int hour;
    time(int,int);
public:
    static time* a(int,int);
    int minute;
    int second;
    void display();
};
time::time(int m,int s):minute(m),second(s){};
int time::hour=15;
time*  time::a(int a1,int b1)
 {
    return new time(b1,b2);
}
void time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
int main()
{
    time *t1=time::a(100,100);
    t1->display();
    return 0;
}

[[it] 本帖最后由 sunkaidong 于 2008-3-8 20:54 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-03-08 20:38
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
谢谢 楼上的耐心回答
是不是 静态函数 只能用来 控制 构造函数 和 静态数据成员
2008-03-09 10:31
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
静态函数还可以用来访问实例对象...可以这样理解静态函数可以访问在内存里面已经分配空间的所有成员..如静态成员,静态函数,还有实例的对象.

学习需要安静。。海盗要重新来过。。
2008-03-09 10:49
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
谢谢了啊
2008-03-09 11:16
快速回复:类的静态成员?
数据加载中...
 
   



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

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