json-tutorial icon indicating copy to clipboard operation
json-tutorial copied to clipboard

为什么类外可以访问类内私有成员

Open Eoous opened this issue 5 years ago • 1 comments

TIM图片20190703183209 类内私有成员图 TIM图片20190703183551 lept_parse_array() TIM图片20190703183505 编译器提示不可访问 但是ctrl+f5可以运行成功 不知道为什么

Eoous avatar Jul 03 '19 10:07 Eoous

lept_value 并不是类,而是结构体 struct, 所以其成员的默认访问级别是 public, 所以 成员u可以被访问,进而u的成员a 也可以访问, a的成员 e_ 同理 即 lept_value->u.a.e_

而C++11 新增了 匿名union的写法,所以可以简写为 lept_value->e_ 具体,M大在这里有写,第2节的最后一句话 匿名union

至于VS 为什么说不可访问,按理说VS应该是支持这种语法的,不然也不会编译成功且可执行, 但语法检测的时候,似乎出了点问题?

chanchancl avatar Jul 09 '19 02:07 chanchancl