Comment #0 by andy.somerville — 2007-09-26T00:04:46Z
After creating a new type from a class via typedef, an instance of the derived type cannot access fields of the original class:
module testTypedef;
class Foo
{
public:
int i;
}
typedef Foo Bar;
void main()
{
Bar testBar = new Bar();
testBar.i;
}
compile fails with:
testTypedef.d(16): Error: this for i needs to be type Foo not type Bar
testTypedef.d(16): Error: dotvar has no effect in expression (testBar.i)
The problem seems to have already been discussed, but a long time ago (2005-05-16) and never resolved:
http://www.digitalmars.com/d/archives/digitalmars/D/bugs/3991.html