Inheritance and arrays
Rene Zwanenburg
renezwanenburg at gmail.com
Mon Jul 3 11:03:28 UTC 2023
On Monday, 3 July 2023 at 09:50:20 UTC, Arafel wrote:
> Is this a conscious design decision (if so, why?), or just a
> leak of some implementation detail, but that could eventually
> be made to work?
Besides the pointer adjustment problem mentioned by
FeepingCreature, it's an unsound conversion even with just class
inheritance. Consider:
```
class A {}
class B : A {}
class C : A {}
void main()
{
auto bArr = [new B()];
A[] aArr = bArr; // If this was allowed..
aArr[0] = new C(); // This would be a problem, because bArray
would now contain a C.
}
```
More information about the Digitalmars-d-learn
mailing list