Şablonlar, C++'ın en gelişmiş ve en güçlü özelliklerinden biridir. Şablonları kullanarak genel amaçlı olarak kullanılan fonksiyonlar, sınıflar ve değişkenler oluşturabiliriz. Genel amaçlı olarak kullanılan bir fonksiyon veya sınıfta, fonksiyonun veya sınıfın üzerinde çalıştığı veri türü bir parametre olarak belirtilir. Böylece, her veri türü için farklı kod yazmak yerine, birkaç farklı veri türüyle bir fonksiyon veya sınıfı kullanabiliriz.
C++'da halen kullanılmakta olan üç çeşit şablon vardır: