Notes on Defective C++
Sean Kelly
sean at invisibleduck.org
Sun Dec 7 18:27:13 PST 2008
Nick Sabalausky wrote:
> "Walter Bright" <newshound1 at digitalmars.com> wrote in message
> news:ghh7r5$436$1 at digitalmars.com...
>> bearophile wrote:
>>> 1) No compile time encapsulation: "In naturally written C++ code,
>>> changing the private members of a class requires recompilation of the
>>> code using the class." I think D solves this problem, you only have
>>> to compile the module the contains the class (generally a module
>>> contains related classes/functions).
>> D doesn't solve this problem. Changing the private members changes offsets
>> of other members and derived classes, so they must all be recompiled.
>> Inline functions are also, of course, affected.
>>
>> The way to avoid this is to use interfaces.
>
> Would there be any problem with making all the public members come first,
> then the protected, then the private? That way changing private members
> wouldn't change the offsets of public and protected members. (Not that I
> consider this a major issue.)
With inheritance, I'm not sure this is possible.
class A
{
public int a;
private int b;
}
class B : A
{
public int c;
private int d;
}
Sean
More information about the Digitalmars-d
mailing list