Thread overview | ||||||
---|---|---|---|---|---|---|
|
April 30, 2010 newbie: Access violation because of "class" | ||||
---|---|---|---|---|
| ||||
Why do I get an "object.Error: Access Violation" in the following code? If I change "class" to "struct" and remove "public:" I don't get an error. I'm using D2. import std.stdio; class Plane { public: int xres, yres; }; void main (string[] args) { Plane p; p.xres = 1920; } |
April 30, 2010 Re: newbie: Access violation because of "class" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Larry Luther | On 04/29/2010 08:50 PM, Larry Luther wrote:
> Why do I get an "object.Error: Access Violation" in the following code?
> If I change "class" to "struct" and remove "public:" I don't get an error.
> I'm using D2.
>
> import std.stdio;
>
> class Plane {
> public:
> int
> xres,
> yres;
> };
>
>
> void main (string[] args) {
> Plane
> p;
> p.xres = 1920;
> }
>
>
>
>
>
because 'Plane p;' is short for 'Plane p = null;'
I bet you want 'Plane p = new Plane();'
or if you want it allocated on the stack, I think
'scope Plane p = new Plane();'
should work.
|
April 30, 2010 Re: newbie: Access violation because of "class" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Larry Luther | Larry Luther:
> Why do I get an "object.Error: Access Violation" in the following code? If I change "class" to "struct" and remove "public:" I don't get an error. I'm using D2.
D classes are not like C++ classes, they are managed by reference only, as in Java. See the scope keyword too.
Bye,
bearophile
|
April 30, 2010 Re: newbie: Access violation because of "class" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Larry Luther | Thanks for your help. |
Copyright © 1999-2021 by the D Language Foundation