云风前辈你好,最近我在看书的时候遇到以下的问题:情况一(没有写完整代码):int c;class c{};cout<<sizeof(c); 这个时候输出为4,如果用cout<<sizeof(class c);则输出1。情况二:namespace temp{ int c;}class c{};cout<<sizeof(c); 这个时候编译器提示c有二义性,在c前加上关键词限定后即可通过编译。 现在的问题是,sizeof中的参数c是通过怎样一种机制去确定c到底是指哪一个? 情况一中的两个c定义顺序不会影响结果,这个已经试过了。
我认为情况一中也有二义性,只不过你的编译器没警告你罢了。 - 回复 | (2680) | 云风 | 2013-06-21 06:06:14