digitalmars.D.bugs - Private member access
- Russell (16/16) May 05 2004 Seems I can access private class members from outside the class?
- J Anderson (23/39) May 05 2004 The compiler is correct. Private/Protected only works in module space:
Seems I can access private class members from outside the class?
class Test2
{
private void privateFunct()
{
printf("How can this be?\n");
}
}
int main ( char [] [] args )
{
Test2 t2 = new Test2();
t2.privateFunct();
return 1;
}
This code compiles and runs. Shouldn't this fail compilation?
Russell
May 05 2004
Russell wrote:
Seems I can access private class members from outside the class?
class Test2
{
private void privateFunct()
{
printf("How can this be?\n");
}
}
int main ( char [] [] args )
{
Test2 t2 = new Test2();
t2.privateFunct();
return 1;
}
This code compiles and runs. Shouldn't this fail compilation?
The compiler is correct. Private/Protected only works in module space:
ie
//file X.d
module X;
class Test2
{
private void privateFunct()
{
printf("How can this be?\n");
}
}
//file main
import X;
int main ( char [] [] args )
{
Test2 t2 = new Test2();
t2.privateFunct(); //Compiler Error
return 1;
}
Therefore everything in the same module are friends (to use a C++ term).
--
-Anderson: http://badmama.com.au/~anderson/
May 05 2004








J Anderson <REMOVEanderson badmama.com.au>