বিশেষত ডিফল্ট নির্মাণকারী সম্পর্কে জিজ্ঞাসা করা
প্রদত্ত যে কন্সট্রাক্টর একটি অবজেক্টের জন্য সমস্ত ডেটা আরম্ভ করে, যদি আমি এমন একটি ক্লাস তৈরি করি যা সঠিক আরম্ভকরণ ব্যতীত ব্যবহার করা যায় না, তবে এটি কি ডিফল্ট কনস্ট্রাক্টর অকেজো হওয়ার মতো ঘটনা নয়? বিবেচনা:
// A class for handling lines in a CSV file
class CSV_Entry {
private:
unsigned num_entries;
std::string string_version;
std::vector<std::string> vector_version;
...etc
public:
CSV_Entry();
CSV_Entry(const std::string& src_line);
// returns a vector copy of the original entry
std::vector<std::string> get_vector_snapshot();
}
int main( void ) {
...etc
CSV_Entry example = CSV_Entry();
std::vector<std::string> current_entry = example.get_vector_snapshot();
...etc
}
যে পরিবর্তনশীল current_entry
মূলত অকেজো কোন? কেউ যদি পরে এটি প্রক্রিয়া করার চেষ্টা করে তবে তারা সম্ভবত ত্রুটি পেতে পারে; তারপরে তারা এ জাতীয় ত্রুটিগুলি পরিচালনা করার জন্য কোড তৈরি করতে চাই ...
এই জাতীয় অতিরিক্ত, অপ্রয়োজনীয় কোড প্রশমিত করার জন্য: ডিফল্ট কনস্ট্রাক্টরকে কেন অকেজো করতে হবে না? তাই ভালো,
...etc
CSV_Entry() {
throw Verbose_Exception( "CSV_Entry: do not use the default constructor" );
}
...etc
পিএস: সাইড নোটে, যদি কেবলমাত্র ডিফল্ট কনস্ট্রাক্টরকে অপ্রয়োজনীয় করা ঠিক হয় তবে শিরোনামে থ্রো রাখা কি ঠিক আছে, যেহেতু অন্য কোনও বাস্তবায়নের বিশদটি প্রকাশিত হয়নি?