Friend functions allow non-member functions to access private and protected members of a class. Inline functions avoid function call overhead by copying the code into the calling function. The this pointer is an implicit parameter that provides access to the object from within member functions. Static members exist only once per class rather than for each object. Inheritance allows classes to inherit attributes and behaviors from other classes in a hierarchy. Polymorphism allows functions to take different implementations based on the runtime type of an object. Encapsulation binds data and functions that operate on that data together within a class to hide implementation details.