উদাহরণস্বরূপ যেমন একটি ঘোষণা:
int (x) = 0;
বা এমনকি:
int (((x))) = 0;
আমি এটিকে হোঁচট খেয়েছি কারণ আমার কোডে আমার সাথে নিম্নলিখিত অংশের মতো একটি খণ্ড রয়েছে:
struct B
{
};
struct C
{
C (B *) {}
void f () {};
};
int main()
{
B *y;
C (y);
}
স্পষ্টতই আমি অবজেক্টটি নির্মাণ করতে চেয়েছিলাম C
যা তার ধ্বংসকারীটিতে কার্যকর কিছু করতে পারে। তবে এটি ঘটনার সাথে সাথে সংকলকটি প্রকারের সাথে C (y);
ভেরিয়েবলের ঘোষণা হিসাবে আচরণ করে এবং এটি পুনরায় সংজ্ঞা সম্পর্কে একটি ত্রুটি মুদ্রণ করে । মজার বিষয় হ'ল আমি যদি এটি লিখি বা এটির মতো কিছু লিখতে চাইলে সংকলিত করে দেই। কনস্ট্রাক্টর কলটিতে অবশ্যই সবচেয়ে ভাল আধুনিক কার্যকারিতা ব্যবহার করা।y
C
y
C (y).f ()
C (static_cast<B*> (y))
{}
সুতরাং আমি এটির পরে যেমনটি বের করেছি, ভেরিয়েবলগুলি int (x) = 0;
এমনকি বা এমনকি ঘোষণা করা সম্ভব int (((x))) = 0;
তবে বাস্তবে আমি এর আগে কখনও কাউকে দেখিনি। সুতরাং আমি আগ্রহী - এই ধরনের সম্ভাবনার উদ্দেশ্য কী? কারণ আপাতত আমি দেখতে পাচ্ছি যে এটি কেবল কুখ্যাত "মোস্ট ভেক্সিং পার্স" এর মতোই কেসটি তৈরি করে এবং দরকারী কিছু যুক্ত করে না?