Templates use types and values as parameters for creating classes, effectively specifying a family of classes from a single declaration.