Module-level accessibility
Denis Koroskin
2korden at gmail.com
Mon Oct 4 11:35:56 PDT 2010
On Mon, 04 Oct 2010 22:13:52 +0400, Jonathan M Davis <jmdavisProg at gmx.com>
wrote:
> On Monday, October 04, 2010 10:37:53 Sean Kelly wrote:
>> Andrei Alexandrescu Wrote:
>> > There is still debate on the matter of private methods in interfaces.
>> > Please bring up in this forum any additional pro and con arguments
>> that
>> > you might have.
>>
>> What debate? Private methods don't get a vtbl entry so I don't see how
>> an
>> interface could possibly require one, regardless of in-module
>> visibility.
>
> Except that per TDPL private methods are _supposed_ to be in the vtable:
> http://d.puremagic.com/issues/show_bug.cgi?id=4542
>
> The fact that they don't currently is definitely limiting. Personally, I
> liked
> what TDPL said about interfaces and private methods, and I don't know
> what the
> debate against them is. It all seemed quite sensible to me.
>
> Regardless, however, private methods really should be properly
> polymorphic.
>
> - Jonathan M Davis
Interesting enough, you can "override" private methods, yet the override
keyword is silently ignored:
import std.stdio;
class A
{
private void foo()
{
writeln("A.foo");
}
void test()
{
foo();
}
}
class B : A
{
private override void foo()
{
writeln("B.foo");
}
}
void main()
{
B b = new B();
b.test();
}
# dmd private.d && ./private
A.foo
More information about the Digitalmars-d
mailing list