एक स्मार्ट पॉइंटर एक ऐसा वर्ग है जो 'कच्चे' (या 'नंगे') सी ++ पॉइंटर को लपेटता है। इसका उपयोग पॉइंटर द्वारा इंगित संसाधनों को प्रबंधित करने के लिए किया जाता है। उदाहरण के लिए, यदि उस स्मृति स्थान का संदर्भ खो जाता है। यह एक तरह से कचरा संग्रहकर्ता की तरह काम करता है। कई स्मार्ट पॉइंटर प्रकार हैं।
आपको लगभग हमेशा एक स्मार्ट पॉइंटर का उपयोग करना चाहिए। ऐसा इसलिए है क्योंकि पॉइंटर्स का उपयोग करने का मुख्य दर्द बिंदु मैनुअल मेमोरी मैनेजमेंट और मेमोरी लीक है। स्मार्ट पॉइंटर इन दोनों से छुटकारा पाने की कोशिश करता है। यदि आप अभ्यास में इनमें से कोई भी नहीं करना चाहते हैं, तो आपको एक स्मार्ट पॉइंटर का उपयोग करना चाहिए।