令我茫然的问题

elevenj 2003-01-14 03:26:22
看一段别人的代码,有个类所有成员都是静态的,我没看到此类的实例,但是我看到他在用他的成员函数。我认为是非法的。希望大家给个意见。最近工作的挺不顺心,如果我错了望不要太严厉。
...全文
38 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
neubird 2003-01-18
  • 打赏
  • 举报
回复
静态成员函数就是做这个用的啊
北极猩猩 2003-01-18
  • 打赏
  • 举报
回复
如果只有静态成员的话还不如用namespace比较好
airship 2003-01-18
  • 打赏
  • 举报
回复
hehe
qfknet 2003-01-14
  • 打赏
  • 举报
回复
灌个水吧!
zhpsam109 2003-01-14
  • 打赏
  • 举报
回复
类的静态成员是全局的!
flyhonk 2003-01-14
  • 打赏
  • 举报
回复
up!
bluedodo 2003-01-14
  • 打赏
  • 举报
回复
静态的类只能被静态的函数调用,否则?--非法!
littlechang 2003-01-14
  • 打赏
  • 举报
回复
类的静态成员是该的所有实例(0--N)个所共有,而不属于某个实例,引用时,用类名。当然,用实例名也不算错。
web_spider 2003-01-14
  • 打赏
  • 举报
回复
看来,程序的作者是位高手。
有时候,类的作用并不一定用来生成很多实例;
它只不过是将一组相关的操作封装一下而已。
wabc 2003-01-14
  • 打赏
  • 举报
回复
类的静态成员可以被直接引用。
qxch 2003-01-14
  • 打赏
  • 举报
回复
up atma
pgood 2003-01-14
  • 打赏
  • 举报
回复
这时,类的名子就变成了一个名子空间,可以减少名子冲突.使用类的成员时,无需生成类的实例,(如楼上所述,是全局的,静态的),可以提高程序运行的效率
vmao 2003-01-14
  • 打赏
  • 举报
回复
gz
lw549 2003-01-14
  • 打赏
  • 举报
回复
GZ
atma 2003-01-14
  • 打赏
  • 举报
回复
一个类的静态成员,相当于一个全局作用的成员.
一个静态成员变量,相当于一个全局变量.一个静态成员函数,相当于一个全局函数.对于他们的使用, 类名::静态成员名 就可以.
class CTest{
public:
static int i;
static void func();
}

main()
{
CTest::i = 0; //使用静态成员变量.
CTest::func(); //使用静态成员函数.
}
liu_feng_fly 2003-01-14
  • 打赏
  • 举报
回复
合法,因为可以在建立一个类的对象之前就调用类的静态成员函数,这样做的目的是避免全局函数,更加好的解决方法是使用名字空间,把这些函数都放到名字空间里面去
NetBird_China 2003-01-14
  • 打赏
  • 举报
回复
up ! chinajiji.

如果他的成员函数是静态的,当然可以用
artman 2003-01-14
  • 打赏
  • 举报
回复
这就是静态函数的用处,引用类的静态成员不需要指定对象或对象指针。
一个类的静态成员,无论是否存在类的实例(对象),该静态成员都是已经存在的,可以使用类的限定符直接引用该静态成员。
chinajiji 2003-01-14
  • 打赏
  • 举报
回复
静态成员函数不能使用非静态成员数据,但可以使用静态成员数据.
非静态成员函数既可以使用非静态成员数据,也可以使用静态成员数据.
winco 2003-01-14
  • 打赏
  • 举报
回复
具体一点

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧