(একক থ্রেডযুক্ত পরিবেশ ধরে)
এই মানদণ্ড পূরণকারী একটি ফাংশন:
bool MyClass::is_initialized = false;
void MyClass::lazy_initialize()
{
if (!is_initialized)
{
initialize(); //Should not be called multiple times
is_initialized = true;
}
}
সংক্ষেপে, আমি এই ফাংশনটিকে একাধিকবার কল করতে পারি এবং এটি MyClass
একাধিকবার আরম্ভ করার বিষয়ে চিন্তা করি না
এই মানদণ্ডটি পূরণ না করে এমন একটি ফাংশন হতে পারে:
Foo* MyClass::ptr = NULL;
void initialize()
{
ptr = new Foo();
}
initialize()
একাধিকবার কল করা স্মৃতি ফাঁসির কারণ হবে
প্রেরণা
এই আচরণটি বর্ণনা করার জন্য একটি সংক্ষিপ্ত শব্দটি ব্যবহার করা ভাল হবে যাতে এই মানদণ্ডটি প্রত্যাশিত ফাংশনগুলি যথাযথভাবে মন্তব্য করা যায় (বিশেষত কার্যকর যখন ইন্টারফেস ফাংশনগুলি ওভাররাইড করা হবে বলে বর্ণনা করা যায়)