---
description: "Learn more about: protected (C++)"
title: "protected (C++)"
ms.date: "11/04/2016"
f1_keywords: ["protected_cpp"]
helpviewer_keywords: ["protected keyword [C++], member access", "protected keyword [C++]"]
ms.assetid: 863d299f-fc0d-45d5-a1a7-bd24b7778a93
---
# protected (C++)
## Syntax
```
protected:
[member-list]
protected base-class
```
## Remarks
The **`protected`** keyword specifies access to class members in the *member-list* up to the next access specifier (**`public`** or **`private`**) or the end of the class definition. Class members declared as **`protected`** can be used only by the following:
- Member functions of the class that originally declared these members.
- Friends of the class that originally declared these members.
- Classes derived with public or protected access from the class that originally declared these members.
- Direct privately derived classes that also have private access to protected members.
When preceding the name of a base class, the **`protected`** keyword specifies that the public and protected members of the base class are protected members of its derived classes.
Protected members are not as private as **`private`** members, which are accessible only to members of the class in which they are declared, but they are not as public as **`public`** members, which are accessible in any function.
Protected members that are also declared as **`static`** are accessible to any friend or member function of a derived class. Protected members that are not declared as **`static`** are accessible to friends and member functions in a derived class only through a pointer to, reference to, or object of the derived class.
For related information, see [friend](../cpp/friend-cpp.md), [public](../cpp/public-cpp.md), [private](../cpp/private-cpp.md), and the member-access table in [Controlling Access to Class Members](member-access-control-cpp.md).
## /clr Specific
In CLR types, the C++ access specifier keywords (**`public`**, **`private`**, and **`protected`**) can affect the visibility of types and methods with regard to assemblies. For more information, see [Member Access Control](member-access-control-cpp.md).
> [!NOTE]
> Files compiled with [/LN](../build/reference/ln-create-msil-module.md) are not affected by this behavior. In this case, all managed classes (either public or private) will be visible.
## END /clr Specific
## Example
```cpp
// keyword_protected.cpp
// compile with: /EHsc
#include
[Keywords](../cpp/keywords-cpp.md)