Пространства имён
Варианты
Действия

Member access operators

Материал из cppreference.com
< cpp‎ | language

 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 
Доступ к члену объекта.
Оригинал:
Accesses a member of an object.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Operator name Syntax Over​load​able Prototype examples (for class T)
Inside class definition Outside class definition
array subscript a[b] Да R& T::operator[](const T2& b); N/A
indirection (variable pointed to by a) *a Да R& T::operator*(); R& operator*(T &a);
address of &a Да R* T::operator&(); R* operator&(T &a);
member of object a.b Нет N/A N/A
member of pointer a->b Да R* T::operator->() N/A
pointer to member of object a.*b Нет N/A N/A
pointer to member of pointer a->*b Да R* T::operator->*(R) R* T::operator->*(T, R)
'Примечание'
Оригинал:
Notes
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
  • Как и в большинстве пользовательских перегрузок, возвращаемых типов должны соответствовать возвращаемых типов осуществляется встроенными операторами, так что пользователю определенные операторы могут быть использованы таким же образом, как и встроенные модули. Однако, в определенный пользователем оператор перегрузки, любого типа могут быть использованы в качестве возвращаемого типа (в том числе void). Одним из исключений является operator->, которая должна вернуть указатель.
    Оригинал:
    As with most user-defined overloads, return types should match return types provided by the builtin operators so that the user-defined operators can be used in the same manner as the built-ins. However, in a user-defined operator overload, any type can be used as return type (including void). One exception is operator->, which must return a pointer.
    Текст был переведён автоматически через Google Translate.
    Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Объяснение

' Индекс массива оператор предоставляет доступ к элементам внутреннего массива
Оригинал:
array subscript operator provides access to the elements in the internal array
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Косвенного, членом указатель и указателя на член указатель операторы предоставляют семантику указателя для любого объекта.
Оригинал:
indirection, member of pointer and pointer to member of pointer operators provide pointer semantics for any object.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Членом указатель и указателя на член указатель операторов возвращает указатель на фактический объект, который будет использоваться для доступа к члену.
Оригинал:
member of pointer and pointer to member of pointer operators return a pointer to the actual object which will be used for member access.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Встроенный оператор индекса

Для каждого типа объектов T (возможно, резюме квалифицированных), следующие функции подписи участвует в разрешении перегрузки
Оригинал:
For every object type T (possibly cv-qualified), the following function signature participates in overload resolution:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
T& operator[](T*, std::ptrdiff_t);
T& operator[](std::ptrdiff_t, T*);
Без указателя операнда может быть любое выражение интегрального или незаданной тип перечисления, это неявно преобразованы в std::ptrdiff_t. Выражение A[B] именно идентичные выражения *(A+B), то есть операнд указателя (который может быть результатом массива в указатель преобразования, и который должен указывать на элемент некоторого массива или за последним) доводят до точка, в другой элемент того же массива, в соответствии с правилами Указатель арифметика, а затем разыменован.
Оригинал:
The non-pointer operand may be any expression of integral or unscoped enumeration type, it is неявно преобразованы to std::ptrdiff_t. The expression A[B] is exactly identical to the expression *(A+B), that is, the pointer operand (which may be a result of array-to-pointer conversion, and which must point to an element of some array or one past the end) is adjusted to point at another element of the same array, following the rules of Указатель арифметика, and is then dereferenced.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
#include <iostream>
 
int main()
{
    int a[4] = {1,2,3,4};
    int* p = &a[2];
    std::cout << p[1] << p[-1] << 1[p] << (-1)[p] << '\n';
}

Вывод:

4242

[править] Встроенный косвенного оператора

Для каждого типа T, что это либо тип объекта (возможно, резюме квалифицированных) или функции типа (не сопзЬ или реф-квалифицированный), следующие функции подписи участвует в разрешении перегрузки
Оригинал:
For every type T that is either object type (possibly cv-qualified) or function type (not const- or ref-qualified), the following function signature participates in overload resolution:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
T& operator*(T*);
Операнд встроенным косвенного оператора является указателем на объект или функцию, и в результате именующее, что указатель направлен на. Обратите внимание, что указатель на неполный тип может быть разыменован, например, При инициализации ссылки.
Оригинал:
The operand of the built-in indirection operator is a pointer to object or function, and the result is the lvalue that the pointer is pointing at. Note that a pointer to incomplete type can be dereferenced, e.g. when initializing a reference.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
#include <iostream>
int f() { return 42; }
int main()
{
    int n = 1;
    int* pn = &n;
 
    int& r = *pn;  // lvalue can be bound to a reference
    int m = *pn;   // indirection + lvalue-to-rvalue conversion
 
    int (*fp)() = &f;
    int (&fr)() = *fp; // function lvalue can be bound to a reference
}


[править] Встроенный в адрес-оператора

Операнд встроенный в operator& либо выражение именующее любого типа или полное имя не статические функции-члены / объекта в некотором классе. Этот оператор не участвует в разрешении перегрузки, специальные правила:
Оригинал:
The operand of the built-in operator& is either an lvalue expression of any type or the qualified name of a non-static member function/object in some class. This operator does not participate in overload resolution, special rules are used:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если операндом является выражение именующее некоторых типов T, operator& создает и возвращает prvalue типа T*, с такой же квалификацией резюме, что указывает на объект, указанный операндом. Если операнд имеет неполный тип, указатель может быть образована, но если это неполный тип бывает класс, который определяет свое собственное operator&, поведение не определено. Для операндов типа с заданными пользователем operator&, std::addressof может быть использован для получения истинного указателя.
Оригинал:
If the operand is an lvalue expression of some type T, operator& creates and returns a prvalue of type T*, with the same cv qualification, that is pointing at the object designated by the operand. If the operand has incomplete type, the pointer can be formed, but if that incomplete type happens to be a class that defines its own operator&, the behavior is undefined. For the operands of type with user-defined operator&, std::addressof may be used to obtain the true pointer.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если операндом является имя перегруженной функции, адреса могут быть приняты только в том случае перегрузки может быть решен за счет контекста, то есть' в результате operator& используется для инициализации объекта, в гипсе выражения, слева от назначения, в качестве параметра функции или оператора возврата.
Оригинал:
If the operand is the name of an overloaded function, the address may be taken only if the overload can be resolved due to context, that is, the result of operator& is used to initialize an object, in a cast expression, on the left of an assignment, as a function parameter or in a return statement.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если операнд полное имя не статические члены, например, &Class::member, в результате prvalue указатель на функцию-член или указатель на член объекта типа T в классе C. Заметим, что ни &member ни Class::member, ни даже (&Class::member) может быть использован для инициализации указателя на член.
Оригинал:
If the operand is a qualified name of a non-static member, e.g. &Class::member, the result is a prvalue pointer to member function or pointer to member object of type T in class C. Note that neither &member nor Class::member nor even (&Class::member) may be used to initialize a pointer to member.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
void f(int) {}
void f(double) {}
struct A { int i; };
struct B { void f(); };
int main()
{
    int n = 1;
    int* pn = &n; // pointer
    int A::* mp = &A::i;  // pointer to member object
    void (B::*mpf)() = &B::f; // pointer to member function
 
//    auto pf2 = &f; // error: ambiguous overloaded function type
    void (*pf)(int) = &f; // overload resolution due to initialization
    auto pf2 = static_cast<void(*)(int)>(&f); // overload resolution due to cast
}


[править] Встроенные операторы доступа к члену

Левый операнд встроенный в operator. и operator-> является выражением полного типа класса T (для operator.) или указатель для завершения классового типа T* (для operator->, который оценивается до оператора можно так назвать. Правым операндом является имя объекта члена или члена функции T или одного из классов T база, например, expr.member, необязательно квалифицированные, например, expr.name::member, при необходимости добавляется по ключевому слову' шаблон, например, expr.template member.
Оригинал:
The left operand of the built-in operator. and operator-> is an expression of complete class type T (for operator.) or pointer to complete class type T* (for operator->, which is evaluated before the operator can be called. The right operand is the name of a member object or member function of T or of one of T's base classes, e.g. expr.member, optionally qualified, e.g. expr.name::member, optionally prepended by the keyword template, e.g. expr.template member.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
A->B выражение в точности эквивалентен (*A).B для встроенных типов. Если определенный пользователем operator-> предусмотрено, operator-> называется снова на значение, которое он возвращается, рекурсивно, пока не будет достигнута operator->, который возвращает простой указатель. После этого, встроенной семантики применяется к этому указателю.
Оригинал:
The expression A->B is exactly equivalent to (*A).B for builtin types. If a user-defined operator-> is provided, operator-> is called again on the value that it returns, recursively, until the operator-> is reached that returns a plain pointer. After that, builtin semantics are applied to that pointer.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
в выражении expr.B,
Оригинал:
In the expression expr.B,
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
1)
если B имеет тип T&, в результате именующее T.
Оригинал:
if B has type T&, the result is an lvalue T.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
2)
B, если это статический член данных типа T, в результате именующее T обозначающие, что статические члены данных.
Оригинал:
if B is a static data member of type T, the result is an lvalue T designating that static data member.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
3)
B, если это не статические данные члены типа T, в результате именующее если expr является именующее, в результате xvalue если expr является xvalue, и в результате prvalue иначе. B Если не объявлен быть' изменяемым член CV-квалификация в результате объединения CV-квалификации expr и B. Если B является изменяемым, CV-квалификация в результате объединения летучих квалификации.
Оригинал:
if B is a non-static data member of type T, the result is an lvalue if expr is an lvalue, the result is xvalue if expr is an xvalue, and the result is a prvalue otherwise. If B is not declared to be a mutable member, the cv-qualification of the result is the union of cv-qualifications of expr and B. If B is mutable, the cv-qualification of the result is the union of volatile-qualifications.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
4)
если B является статической функции-члена, в результате именующее назначения статической функции Член КЛУБА. существу, expr оценивается и отбрасываются в этом случае.
Оригинал:
if B is a static member function, the result is an lvalue designating the static memeber function. Essentially, expr is evaluated and discarded in this case.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
5)
если B не является статической функции-члена, в результате особого рода из prvalue, который может быть использован только в качестве левого операнда В вызова функции выражения, и ни для каких других целей.
Оригинал:
if B is a non-static member function, the result is a special kind of prvalue that can only be used as the left-hand operand in a function-call expression, and for no other purpose.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
6)
если B является членом перечисления, в результате prvalue из.
Оригинал:
if B is a member enumeration, the result is a prvalue of the.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
7)
если это B вложенного типа, программа плохо сформированные (не будет компилироваться)
Оригинал:
if B is a nested type, the program is ill-formed (won't compile)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
8)
если expr имеет не классовый тип скалярных и B это имя типа или decltype спецификатор назначении того же типа (минус CV-квалификации), то результат представляет собой особый вид prvalue, который может быть использован только в качестве левого операнда В вызова функции выражения, и ни для каких других целей. вызова функции называется псевдо вызова деструктора, он не принимает никаких аргументов, возвращает void, и не выполняет никаких действий, кроме первоначальной оценки expr.
Оригинал:
if expr has non-class scalar type and B is the type name or decltype specifier designating the same type (minus cv-qualifications), then the result is a special kind of prvalue that can only be used as the left-hand operand in a function-call expression, and for no other purpose. The function call is called pseudo destructor call', it takes no arguments, returns void, and performs no action other than initial evaluation of expr.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
#include <iostream>
template<typename T>
struct P { typedef T* ptr; };
template<typename T>
struct A {
    class B {};
    enum E {RED = 1, BLUE = 2};
    int n;
    static int sn;
    int f() { return 10+n; }
    static int fs() { return 4; }
    A(int n) : n(n) {}
 
    // keyword template needed to refer to a dependent template member
    void g() {
        T obj;
        int* p = obj.template ptr<int>;
        p->~T(); // T is int, this calls int's pseudo destructor
    }
};
template<> int A<P<int>>::sn = 2;
 
int main()
{
    A<P<int>> a(1);
    std::cout << a.n << ' '
              << a.sn << ' ' // << A::sn also works
              << a.f() << ' '
              << a.fs() << ' ' // A::fs() also works
              << a.RED << ' '  // nested type not allowed
//            << a.B  // nested type not allowed
              ;
}

Вывод:

1 2 11 4 1

[править] Встроенный указатель на член оператора доступа

правый операнд как operator.* и operator->* является выражение типа указатель на член класса T. Для operator.*, левого операнда является выражением класса T типа, или некоторые производный класс, в котором T однозначно доступной базы. Для operator->*, левый операнд является указателем на T или на свою базу.
Оригинал:
The right operand of both operator.* and operator->* is an expression of type pointer to member in class T. For operator.*, the left operand is an expression of class type T, or of some derived class in which T is unambiguous accessible base. For operator->*, the left operand is a pointer to T or to its base.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Для каждой комбинации типа B, D, T, где D либо такой же, как и B Класс, производный от B, и T либо объект или тип функции, следующие функции подписи участвует в разрешении перегрузки
Оригинал:
For every combination of types B, D, T, where D is either the same as B or a class derived from B, and T is either object or function type, the following function signature participates in overload resolution:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
T& operator->*(B*, T D::*);
, когда оба операнда может быть резюме квалифицированных, в этом случае возвращаемый тип в резюме квалификации является объединением. CV-квалификация операндов.
Оригинал:
where both operands may be cv-qualified, in which case the return type's cv-qualification is the union of the cv-qualification of the operands.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
E1->*E2 выражение в точности эквивалентен (*E1).*E2 для встроенных типов.
Оригинал:
The expression E1->*E2 is exactly equivalent to (*E1).*E2 for built-in types.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Для выражения expr.*ptr,
Оригинал:
For the expression expr.*ptr,
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
1)
Если динамический тип expr не содержит элемент, к которому относится ptr , поведение не определено
Оригинал:
If the dynamic type of expr does not contain the member to which ptr refers, the behavior is undefined
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
2)
резюме квалификация правила такие же, как для члена доступа оператора, с одним дополнительным правилом:.. указатель на член, который относится к изменяемым член не может быть использован для изменения этого члена в константный объект.
Оригинал:
cv-qualification rules are the same as for member access operator, with one additional rule: a pointer to member that refers to a mutable member cannot be used to modify that member in a const object.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
4)
expr Если это RValue и ptr указывает на функцию-член с и реф-классификатор, программа является недостаточной степени
Оригинал:
If expr is rvalue and ptr points to a member function with & ref-qualifier, the program is ill-formed
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
5)
expr Если это именующее и ptr указывает на функцию-член с && реф-классификатор, программа плохо сформированных
Оригинал:
If expr is lvalue and ptr points to a member function with && ref-qualifier, the program is ill-formed
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
6)
результат expr.*ptr где ptr является указателем на элемент данных имеет такое же значение, как категория expr.
Оригинал:
The result of expr.*ptr where ptr is a pointer to data member has the same value category as expr.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
7)
результат expr.*ptr где ptr является указателем на функцию-член является Specail вид prvalue, который может быть использован только как левый аргумент выражение вызова функции и ни для каких других целей.
Оригинал:
The result of expr.*ptr where ptr is a pointer to member function is a specail kind of prvalue that may only be used as the left-hand argument of a function call expression and for no other purpose.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
8)
ptr Если это нулевое значение указателя, поведение не определено
Оригинал:
If ptr is a null pointer value, the behavior is undefined
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
#include <iostream>
struct S
{
    mutable int mi;
    int f(int n) { return mi+n; }
    S(int n) : mi(n) {}
};
struct D : public S {
        D(int n) : S(n) {}
};
 
int main()
{
    int S::* pmi = &S::mi;
    int (S::*mpf)(int) = &S::f;
 
    const S s(7);
//    s.*pmi = 10; // cannot modify through mutable
    std::cout << s.*pmi << '\n';
 
    D d(7); // base pointers work with derived object
    D* dp = &d;
    std::cout << (d.*mpf)(7) << ' '
              << (dp->*mpf)(8) << '\n';
}

Вывод:

7
14 15

[править] Стандартные библиотеки

Индекс оператор перегружен многие стандартные классы контейнеров
Оригинал:
Subscript operator is overloaded by many standard container classes
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
доступ к конкретному биту
(public функция-член std::bitset) [edit]
обеспечивает индексированный доступ к управляемым массивом
Оригинал:
provides indexed access to the managed array
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::unique_ptr) [edit]
получение указанного символа
(public функция-член std::basic_string) [edit]
Предоставляет доступ к указанному элементу
(public функция-член std::array) [edit]
Предоставляет доступ к указанному элементу
(public функция-член std::deque) [edit]
Предоставляет доступ к указанному элементу
(public функция-член std::vector) [edit]
Предоставляет доступ к указанному элементу
(public функция-член std::map) [edit]
Предоставляет доступ к указанному элементу
(public функция-член std::unordered_map) [edit]
доступ к элементу по индексу
Оригинал:
accesses an element by index
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::reverse_iterator) [edit]
получает RValue ссылкой на проиндексированы элемент
Оригинал:
obtains rvalue reference to indexed element
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::move_iterator)
получить / установить valarray элемент, ломтик, или маски
Оригинал:
get/set valarray element, slice, or mask
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::valarray) [edit]
возврат указанных суб-совпадают
Оригинал:
returns specified sub-match
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::match_results) [edit]
Операторы и косвенного доступа к члену перегружены многие итераторы и смарт-классы указатель
Оригинал:
The indirection and member access operators are overloaded by many iterators and smart pointer classes
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
разыменовывает указатель на управляемый объект
Оригинал:
dereferences pointer to the managed object
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::unique_ptr) [edit]
разыменовывает указатель на управляемый объект
Оригинал:
dereferences pointer to the managed object
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::shared_ptr) [edit]
доступ к управляемому объекту
Оригинал:
accesses the managed object
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::auto_ptr)
возвращает ссылку на эту raw_storage_iterator
Оригинал:
returns a reference to this raw_storage_iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::raw_storage_iterator)
разыменовывает уменьшается основного итератора
Оригинал:
dereferences the decremented underlying iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::reverse_iterator) [edit]
no-op
(public функция-член std::back_insert_iterator)
no-op
(public функция-член std::front_insert_iterator)
no-op
(public функция-член std::insert_iterator)
обращается то к элементу
Оригинал:
accesses the pointed-to element
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::move_iterator)
получает копию текущего element
accesses членом текущего элемента
Оригинал:
obtains a copy of the current element
accesses a member of the current element
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::istream_iterator)
no-op
(public функция-член std::ostream_iterator)

(начиная с C++11)
получает копию текущего character
accesses членом текущего характера, если CharT имеет членов
Оригинал:
obtains a copy of the current character
accesses a member of the current character, if CharT has members
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::istreambuf_iterator)
no-op
(public функция-член std::ostreambuf_iterator)
доступ к текущим match
accesses члена текущем матче
Оригинал:
accesses the current match
accesses a member of the current match
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::regex_iterator)
доступ к текущим result
accesses член текущий результат
Оригинал:
accesses the current result
accesses a member of the current result
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::regex_token_iterator)
{{{1}}}
Оригинал:
{{{2}}}
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] См. также

Приоритет операторов

Common operators
назначение incrementNJdecrement арифметики логичной сравнение memberNJaccess другие

a = b
a = rvalue
a += b
a -= b
a *= b
a /= b
a %= b
a &= b
a |= b
a ^= b
a <<= b
a >>= b

++a
--a
a++
a--

+a
-a
a + b
a - b
a * b
a / b
a % b
~a
a & b
a | b
a ^ b
a << b
a >> b

!a
a && b
a || b

a == b
a != b
a < b
a > b
a <= b
a >= b

a[b]
*a
&a
a->b
a.b
a->*b
a.*b

a(...)
a, b
(type) a
? :

Special operators
static_cast преобразует один тип на другой совместимый
типа
Оригинал:
static_cast converts one type to another compatible type
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
dynamic_cast преобразует виртуальный базовый класс для производных class
Оригинал:
dynamic_cast converts virtual base class to derived class
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
const_cast преобразует тип совместимого типа с различными cv qualifiers
Оригинал:
const_cast converts type to compatible type with different cv qualifiers
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
reinterpret_cast преобразует тип несовместимы type
Оригинал:
reinterpret_cast converts type to incompatible type
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
new выделяет memory
Оригинал:
new allocates memory
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
delete освобождает memory
Оригинал:
delete deallocates memory
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
sizeof запрашивает размер type
Оригинал:
sizeof queries the size of a type
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
sizeof... запрашивает размер Параметр пакета (начиная с C++11)
Оригинал:
sizeof... queries the size of a Параметр пакета (начиная с C++11)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
typeid запрашивает сведения о типе type
Оригинал:
typeid queries the type information of a type
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
noexcept проверяет выражение может вызвать исключение (начиная с C++11)
Оригинал:
noexcept checks if an expression can throw an exception (начиная с C++11)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
alignof запросов выравнивание требований типа (начиная с C++11)
Оригинал:
alignof queries alignment requirements of a type (начиная с C++11)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.