C++ was developed from C by adding features like non-object-oriented extensions from C, object-oriented extensions, and generic programming extensions. C++ is a superset of C, with minor exceptions. Key C++ features include declarations and definitions, namespaces to avoid name collisions, constants declared with const, and new input/output methods using objects like cout and cin instead of library functions. New casts like static_cast and const_cast were also introduced to replace old C-style casts.