shushus

Спринт 7. Указатели. Открываем доступ к памяти. Задание 2.

Jan 12th, 2023
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <cassert>
  2. #include <string>
  3.  
  4. template <typename X>
  5. bool IsSameObject(X& value1, X& value2) {
  6.     return &value1 == &value2;
  7. }
  8.  
  9. int main() {
  10.     using namespace std;
  11.  
  12.     const int x = 1;
  13.     const int y = 1;
  14.     assert(!IsSameObject(x, y));
  15.     assert(IsSameObject(x, x));
  16.  
  17.     const string name1 = "Harry"s;
  18.     const string name1_copy = name1;
  19.     const string name2 = "Ronald"s;
  20.     auto name1_ptr = &name1;
  21.     const string& name1_ref = name1;
  22.  
  23.     assert(!IsSameObject(name1, name2));
  24.     assert(!IsSameObject(name1, name1_copy));
  25.  
  26.     assert(IsSameObject(name1, name1));
  27.     assert(IsSameObject(name2, name2));
  28.     assert(IsSameObject(name1_copy, name1_copy));
  29.  
  30.     assert(IsSameObject(*name1_ptr, name1));
  31.  
  32.     assert(IsSameObject(name1_ref, name1));
  33.  
  34.     assert(IsSameObject(name1_ref, *name1_ptr));
  35. }
Advertisement
Add Comment
Please, Sign In to add comment