Pointer types
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
Этот раздел не завершён Причина:
|
Содержание |
[править] Синтаксис
cv type * cv identifier
|
(1) | ||||||||
return ( * identifier ) ( param_types )
|
(2) | ||||||||
return ( class_name :: * identifier ) ( param_types ) cv_qualifier
|
(3) | ||||||||
type & identifier
|
(4) | ||||||||
type && identifier
|
(5) | (начиная с C++11) | |||||||
[править] Объяснение
# Указатель на данные
Оригинал:
# Pointer to data
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Указатель на функцию
Оригинал:
# Pointer to function
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Указатель на функцию-член
Оригинал:
# Pointer to member function
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Reference
Оригинал:
# Reference
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Г-эталонное значение
Оригинал:
# r-value reference
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Заметки
- Если cv находится перед
*
, то к объекту влияет.Оригинал:If cv is before*
, the pointed-to object is affected.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. - Если cv есть после
*
, указатель влияет.Оригинал:If cv is after*
, the pointer is affected.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Syntax | meaning |
---|---|
const T * | pointer to constant object |
T const * | pointer to constant object |
T * const | constant pointer to object |
const T * const | constant pointer to constant object |
const T & | reference to constant object |
[править] Пример
Запустить этот код
#include <iostream> struct Class { int data_member; void member_function(int i) const { std::cout << "Member function: " << i << std::endl; } static void static_member_function ( int i ) { std::cout << "Static member function: " << i << std::endl; } }; void global_function ( int i ) { std::cout << "Global function: " << i << std::endl; } int main() { Class object; Class *ptr = &object; ptr->member_function(1); Class &ref = object; ref.data_member = 2; std::cout << "object.data_member = " << object.data_member << std::endl; void (Class::*ptr_to_memfun)(int) const = &Class::member_function; (object.*ptr_to_memfun)(3); (ptr->*ptr_to_memfun)(4); void (*ptr_to_fun)(int) = Class::static_member_function; ptr_to_fun(5); ptr_to_fun = global_function; ptr_to_fun(6); }
Вывод:
Member function: 1 object.data_member = 2 Member function: 3 Member function: 4 Static member function: 5 Global function: 6