On Thursday, 8 August 2019 at 15:51:45 UTC, Drobet wrote:
I'm having a weird issue, where after defining my classes variables as private, they can still be modified and looked at from the outside. That leads to this code compiling with no issues.

import std.stdio;

class Vector3
{
    this(double _x = 0.0, double _y = 0.0, double _z = 0.0)
    {
        x = _x;
        y = _y;
        z = _z;
    }

    private:
        double x, y, z;
}

int main()
{
    Vector3 vec = new Vector3(5, 5, 5);
    vec.x = 10;
    writeln(vec.x);

    getchar();

    vec.destroy();
    return 0;
}

My question is if this is intended behavior, and if yes, why?

private means module private in D.
see: https://dlang.org/spec/attribute.html#visibility_attributes

Reply via email to