Печать Adders объекта класса в C++

Как преобразовать строку в int в C++ Программирование и разработка

Расположение объекта в памяти называется его адресом. Адресация является необходимой частью C++, она позволяет нам использовать любой элемент в качестве ссылки и поддерживает уникальность всех элементов, будь то любая переменная, объект или контейнер. В этой статье мы увидим, как получить доступ к адресу объекта.

Доступ и печать адреса объекта

Существует три метода доступа к адресу объекта:

  • Использование оператора адреса
  • Использование этого оператора
  • Использование оператора «&»
  • Использование указателя

1. Использование оператора адреса

Оператор C++ addressof возвращает адрес объекта.

Пример:

С++

// C++ program to print address of an object
#include <iostream>
#include <memory>
using namespace std;
 
class GFG {
};
 
int main()
{
    GFG obj1 = GFG();
    GFG obj2 = GFG();
 
    cout << "Address of this object 1 is "
         << addressof(obj1) << endl;
    cout << "Address of this object 2 is "
         << addressof(obj2) << endl;
 
    return 0;
}

Выход

Address of this object 1 is 0x7ffd8d7a5ece
Address of this object 2 is 0x7ffd8d7a5ecf

2. Получить адрес объекта с помощью этого оператора

  1. этот оператор указывает на адрес объекта
  2. к этому оператору может получить доступ только функция-член этого класса

Чтобы узнать больше об этом операторе, обратитесь к ’this’ в C++.

Пример:

С++

// C++ program to print address of an object
#include <bits/stdc++.h>
using namespace std;
 
class GFG {
 
public:
    void printAddress()
    {
        cout << "Address of this object is " << this
             << endl;
    }
};
 
signed main()
{
 
    GFG obj1 = GFG();
    GFG obj2 = GFG();
 
    obj1.printAddress();
    obj2.printAddress();
 
    return 0;
}

Выход

Address of this object is 0x7ffdac7b2d0e
Address of this object is 0x7ffdac7b2d0f

3. Использование оператора «&»

Одним из стандартных способов будет использование указателей. Мы знаем, что указатель хранит адреса переменных, объектов, массивов и т.д.

Пример:

С++

// C++ program to print address of an object
// Using & operator
#include <iostream>
using namespace std;
 
class GFG {
public:
    int x;
};
 
int main()
{
    GFG obj1 = GFG();
    GFG obj2 = GFG();
 
    cout << "Address of object 1 \n";
    cout << &obj1 << endl;
 
    cout << "Address of object 2\n";
    cout << &obj2 << endl;
 
    return 0;
}

Выход

Address of object 1 
0x7ffe2de8c45e
Address of object 2
0x7ffe2de8c45f

4. Использование указателя для доступа к адресу объекта

Указатель может разрешить использование динамического выделения памяти. Объект хранится внутри кучи памяти. Таким образом, для доступа к адресу мы можем использовать свойство указателя, где pointer_name хранит адрес, а *pointer_name хранит значение. чтобы узнать больше об указателях, обратитесь к указателям в C++.

Пример:

С++

// C++ program to print address of an object
// Using pointer
#include <iostream>
using namespace std;
 
class GFG {
public:
    int x;
};
 
int main()
{
    GFG* obj1 = new GFG();
    GFG* obj2 = new GFG();
 
    cout << "Address of object 1 \n";
    cout << obj1 << endl;
 
    cout << "Address of object 2\n";
    cout << obj2 << endl;
 
    return 0;
}

Выход

Address of object 1 
0x25e8010
Address of object 2
0x25e8030

Читайте также:  Почему Zlib используется в Node.js?
Оцените статью
bestprogrammer.ru
Добавить комментарий