সি ++ এর একটি বৈশিষ্ট্য রয়েছে (আমি এর যথাযথ নামটি অনুমান করতে পারি না), যেগুলি আর্গুমেন্ট প্রকারগুলি প্রত্যাশিত না হলে স্বয়ংক্রিয়ভাবে প্যারামিটার ধরণের মিলকারী নির্মাতাদের কল করে।
এর একটি খুব মৌলিক উদাহরণ একটি ফাংশন কল করা std::string
যা একটি const char*
যুক্তির সাথে প্রত্যাশা করে । সংকলক স্বয়ংক্রিয়ভাবে উপযুক্ত নির্মাতাকে ডাকতে কোড উত্পন্ন করবে std::string
।
আমি ভাবছি, পড়াশোনার পক্ষে কি এটি খারাপ বলে মনে হয়?
এখানে একটি উদাহরণ:
class Texture {
public:
Texture(const std::string& imageFile);
};
class Renderer {
public:
void Draw(const Texture& texture);
};
Renderer renderer;
std::string path = "foo.png";
renderer.Draw(path);
এটা কি ঠিক আছে? নাকি খুব বেশি দূর যায়? আমার যদি এটি না করা উচিত, আমি কি কোনওভাবে কলঙ্ক বা জিসিসি সম্পর্কে সতর্ক করতে পারি?