Advertisement
Guest User

Untitled

a guest
May 26th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Dog
  5. {
  6. public:
  7. char* name;
  8. int age;
  9.  
  10. public:
  11. void Guard()
  12. {
  13. cout << "Dog::Guard()\n";
  14. }
  15. void Bark()
  16. {
  17. cout << "Dog::Bark()\n";
  18. }
  19.  
  20. static void StaticMethod()
  21. {
  22. cout << "Dog::StaticMethod\n";
  23. }
  24. };
  25.  
  26. void main()
  27. {
  28. setlocale(0, "");
  29. cout << "Размер в байтах типа Dog: ";
  30. cout << sizeof(Dog) << "\n";
  31.  
  32. Dog d;
  33. cout << "Адрес объекта d типа Dog: ";
  34. cout << &d << " (" << (int)&d << ")\n";
  35.  
  36. cout << "Адрес первого поля объекта d: ";
  37. cout << &d.name << " (" << (int)&d.name << ")\n";
  38.  
  39. cout << "Адрес второго поля объекта d: ";
  40. cout << &d.age << " (" << (int)&d.age << ")\n";
  41.  
  42. cout << "Адрес статического метода класса Dog: ";
  43. cout << &Dog::StaticMethod << " (или ";
  44. cout << &d.StaticMethod << ")\n";
  45.  
  46. cout << "Адрес обычного метода класса Dog: ";
  47. void (Dog::*memfunc_ptr)() = &Dog::Bark;
  48. auto cheat = &Dog::Bark;
  49. cout << memfunc_ptr << "\n";
  50. Dog *omg = new Dog();
  51. (omg->*memfunc_ptr)();
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement