Data abstraction in C++ allows hiding internal implementation details and exposing only essential functions and properties. It separates an object's interface from its implementation. For example, a TV exposes power, channel, and volume controls without revealing internal signal processing. C++ supports abstraction through classes, with private/protected data hiding details and public methods exposing functionality. Abstraction increases code reuse and security while allowing internal changes without affecting external code.