Pointer types
Aus cppreference.com
<metanoindex/>
| This section is incomplete Reason:
|
Syntax
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) | (seit C++11) | |||||||
Erklärung
# Pointer auf die Daten
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.
# Pointer zu funktionieren
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.
# Zeiger auf Member-Funktion
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.
#-Referenz
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-Wert auf
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.
Notes
- Wenn cv vor
*ist, wird der spitzen-to betroffene Objekt .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. - Wenn cv nach
*ist, wird der Zeiger betroffen .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.
Beispiel
#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);
}
Output:
Member function: 1
object.data_member = 2
Member function: 3
Member function: 4
Static member function: 5
Global function: 6
