游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5510|回复: 15

类的静态成员变量和函数它诞生的价值是什么呢?

[复制链接]

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2005-6-4 00:39:00 | 显示全部楼层 |阅读模式
不知道大家有没有人思考过这个问题。类的静态成员函数和成员变量它存在的意义是什么呢?可以肯定,如果没有static这种定义的变量和函数,类中的函数和变量同样能让程序工作的很好。我不大懂类中的静态成员函数和静态成员变量诞生的目的是什么?

当然了,我也懂静态成员函数和变量的用法。
比如说不用生命类的对象,用类名和::符号就可以使用静态函数和变量;
类的静态函数不能访问非静态的类的普通函数(因为没有this指针);
静态变量的生存周期是整个程序,类的变量不能在类的声明处初始化,一定要在类的头文件外面进行初始化;


我想像各位高手请教的不是上面这些基础的用法,而是想知道什么时候把函数定义成static,什么时候用非静态的普通成员函数就可以了。静态函数和变量之所以存在于程序设计语言中,到底它有什么独到的方便之处或是好处呢?

37

主题

180

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2005-6-4 00:51:00 | 显示全部楼层

Re: 类的静态成员变量和函数它诞生的价值是什么呢?

@@ UML的工厂模式..也要个门吧
不然你怎么出货

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-6-4 01:00:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

你会new 一个Math然后再用sin cos方法吗?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-6-4 10:30:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

一般是用来给所有这个类实例化出来的类一个公共的东西。
比如说类的名字,或者用在单件模式中。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-6-4 10:33:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

用处不少,包括作为匹配回调函数和类成员函数的adapter

0

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2005-6-4 21:10:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

能否请大家说得清楚些,请举例说明。

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-6-4 23:23:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

单例
public class SingletonObject
{
  private SingletonObject()
  {
    // no code req'd
  }

  public static SingletonObject getSingletonObject()
  {
    if (ref == null)
        // it's ok, we can call this constructor
        ref = new SingletonObject();
    return ref;
  }

  public Object clone()
throws CloneNotSupportedException
  {
    throw new CloneNotSupportedException();
    // that'll teach 'em
  }

  private static SingletonObject ref;
}

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2005-6-5 03:27:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

多个对象共享一个成员。

1

主题

58

帖子

58

积分

注册会员

Rank: 2

积分
58
发表于 2005-6-5 10:30:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

设计模式中的单件模式,就是靠静态这种特性实现的呀。

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2005-6-5 10:50:00 | 显示全部楼层

Re:类的静态成员变量和函数它诞生的价值是什么呢?

如果你的程序用到了这个东东就有价值,
不然就没有价值啦,
事实上偶觉得讨论这个问题本身就没有多大价值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 21:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表