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