1 1.1 christos namespace A 2 1.1 christos { 3 1.1 christos class C 4 1.1 christos { 5 1.1 christos public: 6 1.1 christos static const int x = 11; 7 1.1 christos }; 8 1.1 christos 9 1.1 christos int 10 1.1 christos first (C c) 11 1.1 christos { 12 1.1 christos return 11; 13 1.1 christos } 14 1.1 christos 15 1.1 christos int 16 1.1 christos first (int a, C c) 17 1.1 christos { 18 1.1 christos return 22; 19 1.1 christos } 20 1.1 christos 21 1.1 christos int 22 1.1 christos second (int a, int b, C cc, int c, int d) 23 1.1 christos { 24 1.1 christos return 33; 25 1.1 christos } 26 1.1 christos 27 1.1 christos int 28 1.1 christos entry (C c) 29 1.1 christos { 30 1.1 christos return 44; 31 1.1 christos } 32 1.1 christos } 33 1.1 christos 34 1.1 christos struct B 35 1.1 christos { 36 1.1 christos A::C c; 37 1.1 christos }; 38 1.1 christos 39 1.1 christos //------------ 40 1.1 christos 41 1.1 christos namespace E 42 1.1 christos { 43 1.1 christos class O{}; 44 1.1 christos int foo (O o){return 1; } 45 1.1 christos int foo (O o, O o2){return 2; } 46 1.1 christos int foo (O o, O o2, int i){return 3; } 47 1.1 christos } 48 1.1 christos 49 1.1 christos namespace F 50 1.1 christos { 51 1.1 christos class O{}; 52 1.1 christos int foo ( O fo, ::E::O eo){ return 4;} 53 1.1 christos int foo (int i, O fo, ::E::O eo){ return 5;} 54 1.1 christos } 55 1.1 christos 56 1.1 christos namespace G 57 1.1 christos { 58 1.1 christos class O{}; 59 1.1 christos int foo (O go, ::F::O fo, ::E::O eo){ return 6; } 60 1.1 christos } 61 1.1 christos 62 1.1 christos //------------ 63 1.1 christos 64 1.1 christos namespace H 65 1.1 christos { 66 1.1 christos class O{}; 67 1.1 christos int foo (O){ return 7;} 68 1.1 christos } 69 1.1 christos 70 1.1 christos namespace I 71 1.1 christos { 72 1.1 christos class O: public H::O {}; 73 1.1 christos class X: H::O{}; 74 1.1 christos } 75 1.1 christos 76 1.1 christos //------------ 77 1.1 christos 78 1.1 christos namespace J 79 1.1 christos { 80 1.1 christos union U{}; 81 1.1 christos struct S{}; 82 1.1 christos enum E{}; 83 1.1 christos 84 1.1 christos class A{ 85 1.1 christos public: 86 1.1 christos class B{}; 87 1.1 christos }; 88 1.1 christos 89 1.1 christos class C{}; 90 1.1 christos 91 1.1 christos int foo (U){ return 8;} 92 1.1 christos int foo (S){ return 9;} 93 1.1 christos int foo (E){ return 10;} 94 1.1 christos int foo (A::B){ return 11;} 95 1.1 christos int foo (A*){ return 12;} 96 1.1 christos int foo (A**){ return 13;} 97 1.1 christos int foo (C[]){ return 14;} 98 1.1 christos 99 1.1 christos } 100 1.1 christos //------------ 101 1.1 christos 102 1.1 christos namespace K{ 103 1.1 christos class O{}; 104 1.1 christos 105 1.1 christos int foo(O, int){ 106 1.1 christos return 15; 107 1.1 christos } 108 1.1 christos 109 1.1 christos int bar(O, int){ 110 1.1 christos return 15; 111 1.1 christos } 112 1.1 christos } 113 1.1 christos 114 1.1 christos int foo(K::O, float){ 115 1.1 christos return 16; 116 1.1 christos } 117 1.1 christos 118 1.1 christos int bar(K::O, int){ 119 1.1 christos return 16; 120 1.1 christos } 121 1.1 christos //------------ 122 1.1 christos 123 1.1 christos namespace L { 124 1.1 christos namespace A{ 125 1.1 christos namespace B{ 126 1.1 christos class O {}; 127 1.1 christos 128 1.1 christos int foo (O){ 129 1.1 christos return 17; 130 1.1 christos } 131 1.1 christos 132 1.1 christos } 133 1.1 christos } 134 1.1 christos } 135 1.1 christos 136 1.1 christos //------------ 137 1.1 christos 138 1.1 christos namespace M { 139 1.1 christos class A{ 140 1.1 christos public: 141 1.1 christos int foo(char) { 142 1.1 christos return 18; 143 1.1 christos } 144 1.1 christos }; 145 1.1 christos 146 1.1 christos int foo(A,char){ 147 1.1 christos return 19; 148 1.1 christos } 149 1.1 christos 150 1.1 christos int foo(A *,char){ 151 1.1 christos return 23; 152 1.1 christos } 153 1.1 christos 154 1.1 christos int bar(char){ 155 1.1 christos return 21; 156 1.1 christos } 157 1.1 christos 158 1.1 christos namespace N { 159 1.1 christos int foo(::M::A,int){ 160 1.1 christos return 20; 161 1.1 christos } 162 1.1 christos 163 1.1 christos int bar(int){ 164 1.1 christos return 22; 165 1.1 christos } 166 1.1 christos } 167 1.1 christos } 168 1.1 christos //------------ 169 1.1 christos 170 1.1 christos namespace O { 171 1.1 christos class A{}; 172 1.1 christos 173 1.1 christos int foo(A,int){ 174 1.1 christos return 23; 175 1.1 christos } 176 1.1 christos 177 1.1 christos } 178 1.1 christos 179 1.1 christos typedef O::A TOA; 180 1.1 christos typedef TOA TTOA; 181 1.1 christos 182 1.1 christos //------------ 183 1.1 christos 184 1.1 christos static union { 185 1.1 christos int a; 186 1.1 christos char b; 187 1.1 christos }p_union; 188 1.1 christos 189 1.1 christos //------------ 190 1.1 christos 191 1.1 christos namespace P { 192 1.1 christos class Q{ 193 1.1 christos public: 194 1.1 christos int operator== (int) 195 1.1 christos { 196 1.1 christos return 24; 197 1.1 christos } 198 1.1 christos 199 1.1 christos int operator== (float) 200 1.1 christos { 201 1.1 christos return 25; 202 1.1 christos } 203 1.1 christos 204 1.1 christos int operator+ (float) 205 1.1 christos { 206 1.1 christos return 26; 207 1.1 christos } 208 1.1 christos 209 1.1 christos }; 210 1.1 christos 211 1.1 christos int operator!= (Q, int) 212 1.1 christos { 213 1.1 christos return 27; 214 1.1 christos } 215 1.1 christos 216 1.1 christos int operator!= (Q, double) 217 1.1 christos { 218 1.1 christos return 28; 219 1.1 christos } 220 1.1 christos 221 1.1 christos int operator+ (Q, int) 222 1.1 christos { 223 1.1 christos return 29; 224 1.1 christos } 225 1.1 christos 226 1.1 christos int operator++ (Q) 227 1.1 christos { 228 1.1 christos return 30; 229 1.1 christos } 230 1.1 christos } 231 1.1 christos 232 1.1 christos //------------ 233 1.1 christos 234 1.1 christos class R { 235 1.1 christos public: 236 1.1 christos int rfoo(){ return 31; } 237 1.1 christos int rbar(){ 238 1.1 christos return 1; // marker1 239 1.1 christos } 240 1.1 christos }; 241 1.1 christos 242 1.1 christos //------------ 243 1.1 christos 244 1.1 christos int 245 1.1 christos main () 246 1.1 christos { 247 1.1 christos A::C c; 248 1.1 christos B b; 249 1.1 christos 250 1.1 christos A::first (c); 251 1.1 christos first (0, c); 252 1.1 christos second (0, 0, c, 0, 0); 253 1.1 christos entry (c); 254 1.1 christos A::first (b.c); 255 1.1 christos 256 1.1 christos E::O eo; 257 1.1 christos F::O fo; 258 1.1 christos G::O go; 259 1.1 christos 260 1.1 christos foo (eo); 261 1.1 christos foo (eo, eo); 262 1.1 christos foo (eo, eo, 1); 263 1.1 christos foo (fo, eo); 264 1.1 christos foo (1 ,fo, eo); 265 1.1 christos foo (go, fo, eo); 266 1.1 christos 267 1.1 christos I::O io; 268 1.1 christos I::X ix; 269 1.1 christos 270 1.1 christos foo (io); 271 1.1 christos //foo (ix); 272 1.1 christos 273 1.1 christos J::U ju; 274 1.1 christos J::S js; 275 1.1 christos J::E je; 276 1.1 christos J::A::B jab; 277 1.1 christos J::A *jap; 278 1.1 christos J::A **japp; 279 1.1 christos J::C jca[3]; 280 1.1 christos 281 1.1 christos foo (ju); 282 1.1 christos foo (js); 283 1.1 christos foo (je); 284 1.1 christos foo (jab); 285 1.1 christos foo (jap); 286 1.1 christos foo (japp); 287 1.1 christos foo (jca); 288 1.1 christos 289 1.1 christos K::O ko; 290 1.1 christos foo (ko, 1); 291 1.1 christos foo (ko, 1.0f); 292 1.1 christos //bar(ko,1); 293 1.1 christos 294 1.1 christos L::A::B::O labo; 295 1.1 christos foo (labo); 296 1.1 christos 297 1.1 christos M::A ma; 298 1.1 christos foo(ma,'a'); 299 1.1 christos ma.foo('a'); 300 1.1 christos M::N::foo(ma,'a'); 301 1.1 christos 302 1.1 christos M::bar('a'); 303 1.1 christos M::N::bar('a'); 304 1.1 christos 305 1.1 christos TTOA ttoa; 306 1.1 christos foo (ttoa, 'a'); 307 1.1 christos 308 1.6 christos p_union = {0}; 309 1.6 christos 310 1.1 christos P::Q q; 311 1.1 christos q == 5; 312 1.1 christos q == 5.0f; 313 1.1 christos q != 5; 314 1.1 christos q != 5.0f; 315 1.1 christos q + 5; 316 1.1 christos q + 5.0f; 317 1.1 christos 318 1.1 christos ++q; 319 1.1 christos 320 1.1 christos R r; 321 1.1 christos r.rbar(); 322 1.1 christos r.rfoo(); 323 1.1 christos 324 1.1 christos return first (0, c) + foo (eo) + 325 1.1 christos foo (eo, eo) + foo (eo, eo, 1) + 326 1.1 christos foo (fo, eo) + foo (1 ,fo, eo) + 327 1.1 christos foo (go, fo, eo); 328 1.1 christos } 329