Sealed classes - would you want them in D?
Uknown
sireeshkodali1 at gmail.com
Sun May 13 02:10:31 UTC 2018
On Sunday, 13 May 2018 at 01:52:20 UTC, KingJoffrey wrote:
> On Saturday, 12 May 2018 at 18:36:59 UTC, Walter Bright wrote:
>> On 5/12/2018 9:42 AM, Mike Parker wrote:
>>> Thank goodness we don't have to do this silliness.
>>
>>[...]
> ================================
> module test;
>
> import std.stdio : writeln;
>
> void main()
> {
> Person p = new Person("King Joffrey");
>
> writeln(p.getName); // I designed my class to present this
> interface.
> writeln(p._name); // The module couldn't care less about
> your interface.
>
> p._name = "King Walter"; // even worse, the module can
> de-throne the king!!
> writeln(p._name);
> }
>
> class Person
> {
> private string _name;
>
> public void setName(string name)
> {
> this._name = name;
> }
>
> public string getName()
> {
> return ProperName(this._name);
> }
>
> public this(string name)
> {
> _name = name;
> }
>
> private static string ProperName(string name)
> {
> return name ~ " : The one true king!";
> }
> }
>
> ===========================================
Again, all you have to do is put class Person in a separate
module. Its not that hard. Why is main in the same module if it
isn't logically related to Person? It should be in its own
module. Its uses Person. main does not extend person, it needs
only the public bits. So it goes in its own module. And please,
if this bothers you so much, start a new thread. You're spamming
someone else's feature request by going off topic.
More information about the Digitalmars-d
mailing list