fork(2) download
  1. #include <typeinfo>
  2. #include <iostream>
  3.  
  4. class T
  5. {
  6. virtual void foo() = 0;
  7. };
  8.  
  9. int main() {
  10. int* pY1 = 0;
  11. const int* pY2 = 0;
  12.  
  13. std::cout << "pY1: " << typeid(pY1).name() << std::endl;
  14. std::cout << "pY2: " << typeid(pY2).name() << std::endl;
  15. std::cout << "*pY1: " << typeid(*pY1).name() << std::endl;
  16. std::cout << "*pY2: " << typeid(*pY2).name() << std::endl;
  17.  
  18. //*pY1 = 0;
  19. //*pY2 = 0; //error
  20.  
  21. int x1 = 0;
  22. const int x2 = 0;
  23.  
  24. std::cout << " x1: " << typeid(x1).name() << std::endl;
  25. std::cout << " x2: " << typeid(x2).name() << std::endl;
  26.  
  27. int z1 = 0;
  28. const int z2 = 0;
  29.  
  30. std::cout << "&z1: " << typeid(&z1).name( ) << std::endl;
  31. std::cout << "&z2: " << typeid(&z2).name( ) << std::endl;
  32.  
  33. int* pZ1 = &z1;
  34. const int* pZ2 = &z2;
  35.  
  36. std::cout << "pZ1: " << typeid(pZ1).name( ) << std::endl;
  37. std::cout << "pZ2: " << typeid(pZ2).name( ) << std::endl;
  38.  
  39. int data1 = 0;
  40. int* const w1 = &data1;
  41. int data2 = 0;
  42. const int* w2 = &data2;
  43. std::cout << "w1: " << typeid(w1).name( ) << std::endl;
  44. std::cout << "*w1: " << typeid(*w1).name( ) << std::endl;
  45. std::cout << "w2: " << typeid(w2).name( ) << std::endl;
  46. std::cout << "*w2: " << typeid(*w2).name( ) << std::endl;
  47.  
  48. T* a;
  49. // T b; //error
  50.  
  51. return 0;
  52. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
pY1: Pi
pY2: PKi
*pY1: i
*pY2: i
 x1: i
 x2: i
&z1: Pi
&z2: PKi
pZ1: Pi
pZ2: PKi
w1: Pi
*w1: i
w2: PKi
*w2: i