Private members are available only to member functions and friend functions of the class. Protected members are available only to members and friends of the base class and members and friends of derived classes. You can apply the same access specifiers to base classes, limiting access to all members of the affected base class. Function prototypes are required. The free store operators new and delete create dynamic objects of a specified type.
References are automatically dereferenced pointers and act like alternative names for a variable.
You can use references as function parameters. Special built-in operator names for type coercion are provided. Programmer-defined automatic type conversion is allowed. Variable declarations are allowed anywhere a statement may appear. They may also occur within the header of an if , switch , or loop statement, not just at the beginning of the block.