Pointer types
From cppreference.com
This section is incomplete Reason:
|
[edit] Syntax
type * identifier | (1) | ||||||||
return ( * identifier ) ( param_types ) | (2) | ||||||||
return ( class_name :: * identifier ) ( param_types ) cv_qualifier | (3) | ||||||||
type & identifier | (4) | ||||||||
type && identifier | (5) | (since C++11) | |||||||
[edit] Explanation
- Pointer to data
- Pointer to function
- Pointer to member function
- Reference
- r-value reference
[edit] Example
#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