digitalmars.D - Compiler Issue when using GDC on Cygwin
- lp_fury hotmail.com (26/26) Nov 14 2005 I hope this is the proper place to post this. I noticed that the compil...
- =?ISO-8859-1?Q?Jari-Matti_M=E4kel=E4?= (6/38) Nov 14 2005 This is correct behavior - classes in the same module are implicitely
I hope this is the proper place to post this. I noticed that the compiler ran
fine with this bit of code.
import std.c.stdio;
class Base
{
private:
int x;
}
class Sub: Base
{
public:
void Write()
{
printf( "X: %d\n", x );
}
}
void main()
{
Sub ob;
ob.Write();
}
The issue I have is that the Sub class is allowed to access private variables
from the base class. I also noted that this reverts to the correct behavior
when these classes are separated into different module files. Thank you.
---------------
Adam Juersivich
Nov 14 2005
lp_fury hotmail.com wrote:
I hope this is the proper place to post this. I noticed that the compiler ran
fine with this bit of code.
import std.c.stdio;
class Base
{
private:
int x;
}
class Sub: Base
{
public:
void Write()
{
printf( "X: %d\n", x );
}
}
void main()
{
Sub ob;
ob.Write();
}
The issue I have is that the Sub class is allowed to access private variables
from the base class. I also noted that this reverts to the correct behavior
when these classes are separated into different module files. Thank you.
---------------
Adam Juersivich
This is correct behavior - classes in the same module are implicitely
each other's "friends" (see c++, friend keyword). I think this detail
can be found in the D language manual. However, currently there's a bug
in the currect module member access implementation. See the d.bugs
newsgroup for details.
Nov 14 2005








=?ISO-8859-1?Q?Jari-Matti_M=E4kel=E4?= <jmjmak invalid_utu.fi>