std::shared_ptr<T>::operator*, std::shared_ptr<T>::operator->
T& operator*() const noexcept; | (1) | (since C++11) |
T* operator->() const noexcept; | (2) | (since C++11) |
Разыменовывает сохранённый указатель. Поведение неопределено, если сохранённый указатель равен нулю.
Параметры
(нет)
Возвращаемое значение
*get(). get(). Примечания
Когда T является типом массива или (возможно, с квалификаторами cv)(с C++17) void, неявно, будет ли объявлена функция (1). Если она объявлена, её возвращаемый тип неявно определён, за исключением того, что объявление (хотя и не обязательно определение) функции должно быть корректным. Это позволяет инстанцировать std::shared_ptr<void>
| Когда | (с C++17) |
Пример
#include <iostream>
#include <memory>
struct Foo
{
Foo(int in) : a(in) {}
void print() const
{
std::cout << "a = " << a << '\n';
}
int a;
};
int main()
{
auto ptr = std::make_shared<Foo>(10);
ptr->print();
(*ptr).print();
}Вывод:
a = 10 a = 10
См. также
| возвращает сохранённый указатель (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/shared_ptr/operator*