Calling a static method ?
Brad Anderson
brad at dsource.org
Thu Jul 13 08:03:48 PDT 2006
andy.dwelly at safedataco.com wrote:
> I'm taking a first look at D. I have a singleton class:
>
> class EventQueue {
> private static EventQueue _instance;
>
> private this() {
> }
>
> public static EventQueue instance() {
> if (_instance is null) {
> _instance = new EventQueue;
> }
>
> return _instance;
> }
> }
>
> int main(char[][] args) {
> auto var = EventQueue.instance();
> return 0;
> }
>
> which compiles quite happiliy (WinXP, dmd 0.162) with dmd -c EventQueue.d , I
> have another file Frame.d:
>
> import Component;
> import EventQueue;
>
> class Frame: Component {
> private EventQueue _queue;
>
> private this(char[] title) {
> EventQueue q = EventQueue.instance;
> }
>
>
> public void add(Component c) {
> }
> }
>
> ..which is trying to create an event queue. When I compile this with dmd -c
> Frame.d I get an:
>
> Frame.d(19): undefined identifier module EventQueue.instance
>
> What am I doing wrong here ? The fact that the main function in the EventQueue.d
> file suggests that its some kind of linker or import error, the instance()
> method in EventQueue seems to be OK.
>
> Can somebody give me some guidance please.
>
>
> Andy Dwelly
have you tried to add:
module EventQueue;
to the first file?
BA
More information about the Digitalmars-d-learn
mailing list