On Friday, 16 May 2014 at 04:59:46 UTC, Taylor Hillegeist wrote:
The subject says it all really. i have this example:

import core.memory;

class fruit{
  int value=5;
  public int getvalue(){
    return value;
  }
}

int main(string[] args) {
    GC.disable;
    static fruit myfruit;
    return myfruit.getvalue();
}

Most of the smart people will see that i want the program to return 5 but I did something dumb and didn't put in the "new" statement?

So my question is in longer words "Can I create instances of objects at compile time?" and if not "why not, i could build something (roughly)equivalent out of structs and functions and have it at compile time?"

First of all, that "static" keyword is meaningless there. You can remove it.

Secondly, the "getvalue" method is not defined as "static". So, it requires a object. It is not bound to class.

Thirdly, when you define "fruit myfruit", the variable "myfruit" is still "null". It doesn't point anywhere in memory. Therefore, the variable "value" is no where in memory. And, thereby there is no spoon, I mean 5.

Reply via email to