Why do private member variables behaved like protected in the same module when creating deriving class?
Paul Backus
snarwin at gmail.com
Thu Nov 1 20:15:57 UTC 2018
On Thursday, 1 November 2018 at 19:26:05 UTC, Steven
Schveighoffer wrote:
>
> My testing looks like it's the same:
>
> #include <stdio.h>
> int main()
> {
> int arr[5];
> int *ptr = arr + 1; // point at second element so we can do
> negative indexing legally
> int idx1 = 0;
> ptr[--idx1] = 5;
> printf("%d\n", arr[0]); // 5
> size_t idx2 = 0;
> ptr[--idx2] = 6;
> printf("%d\n", arr[0]); // 6
> return 0;
> }
>
> -Steve
`ptr[--idx2]` is undefined behavior (out-of-bounds array access),
so the fact that it works that way is just a coincidence.
More information about the Digitalmars-d
mailing list