Pointer types
De cppreference.com
<metanoindex/>
| Esta seção está incompleta Motivo:
|
Sintaxe
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) | (desde C++11) | |||||||
Explicação
# Ponteiro para dados
Original:
# Pointer to data
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
# Ponteiro para funcionar
Original:
# Pointer to function
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
# Ponteiro para função de membro
Original:
# Pointer to member function
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
# Referência
Original:
# Reference
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
# R valor de referência
Original:
# r-value reference
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Notas
- Se cv é antes
*, o objeto pontiagudo para é afetado.Original:If cv is before*, the pointed-to object is affected.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - Se cv é depois
*, o ponteiro é afetado.Original:If cv is after*, the pointer is affected.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Exemplo
#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);
}
Saída:
Member function: 1
object.data_member = 2
Member function: 3
Member function: 4
Static member function: 5
Global function: 6
