在多个类中使用全局变量(30分)

E

ego

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个单元中建立了多个类,而且各个类之间没有任何联系,但我又想在其中几个类中引用某一个类的
内部(在private/public中)数据(变量或属性)。
平时我遇到这种情况都是用全局变量,但这好象不符合OOP的精神,
大家说说看,你遇到这种情况用什么方法解决?
 
哇,一个人都没有......
 
做一個基類,里面包含這個變量,然後這幾個類都從基類繼承下來就可以了
 
声明为一个基类的友员类
 
对呀,在public中定义就能搞定!!!(全局)
 
>>声明为一个基类的友员类
老兄啊,能不能详细一点,不要惜言如金如嘛......

>>在public中定义就能搞定!!!(全局)
请注意,我的各个类之间是没有任何联系的!而且有些数据必须放在private中!
请再想想办法吧!谢谢!
 
将要用的变量作为基类的私有变量,将其他要用该变量的类声明为该类的友员类,不就行了么。

 
友员类?Object Pascal好象没有这个概念吧?是不是C++的?
觉得你的方法和pdb相类似。
 
DELPHI中的友员的用法我不太清楚,不好意思,但我建议你把各个类作成各自自己的unit,把基类
作成一个UNIT,然后use一下,比较适合OOP的思想。
如果采用继承的办法,只是在各个类中都有同样一个变量,但各自生成的实例中该变量的值
互相没有影响,好象不符合你的思想。

 
>>如果采用继承的办法,只是在各个类中都有同样一个变量,但各自生成的实例中该变量的值互相没有影响,好象不符合你的思想。
哈哈,知我者老兄也!我就是为这个苦恼!高手啊,高抬贵手指点一下我这菜鸟吧!
 
既然“在一个单元中建立了多个类”,那么他们就是友员类,可以互相访问。
(Object Pascal中在一个单元里的类就是友员类,而且也只有这种方法才能定义友员类)
 
友员类我已经知道了,但我一开始没有把问题说清楚,我觉得只有行素才明白了。
我觉得关键之处在于类的内部变量与对象内部变量的不同区别。
 
我踢,我踢,我踢踢踢......
 
该出手时就出手啊。
-----------------------
不知您那样做有什么用?
 
wlmmlw:
  不知道我这样做有什么用?呵呵,偶不是本着OOP的精神,响应历史潮流嘛!

诸位啊,不要光看着嘛,你们遇到这种情况是怎么解决的?
 
我也想知道,除了全局变量,还有什么别的好办法?

好像在public里面定义的类变量,创建不同的实例后又分配新的空间了,要让它全局使用
还得定义一个全局的类变量,说白了还是定义全局变量

不懂,听课!顺便踢一脚
 
你干脆定义一个保存这个全局变量的类,
》》好像在public里面定义的类变量,创建不同的实例后又分配新的空间了
是错的,哪个是类,不是对象,对象是分配了空间的,类没有分配,只是一个
指针而已!
 
>>请注意,我的各个类之间是没有任何联系的!而且有些数据必须放在private中!

你的逻辑是不是有点混乱?既然没有任何联系,又怎么会访问别人的私有成员??
如果必须访问别人的私有成员,说明并不是没有任何联系的。 这只能说明你的类
设计的有问题。
 
呵呵,总算张大侠进来了 ^_^
再问仔细一点:那么在其它类中,怎么引用这个保存了全局变量的类和在它里面的变量呢?
偶是菜鸟,不要笑话偶。
 
哦,没看到一个过客大侠也来了,谢谢了!
我的逻辑是有些乱了,感觉大家说得都对,但我一回去看自己的代码又觉得自己的需求是对的......
 
顶部