"সহায়ক ফাংশন" শব্দটি বাতিল করুন। একটি সংজ্ঞা একটি সুবিধাজনক ফাংশন যা আপনি কিছু কাজ করার জন্য সর্বদা ব্যবহার করেন। এগুলি মূল নেমস্পেসে থাকতে পারে এবং তাদের নিজস্ব শিরোনাম ইত্যাদি থাকতে পারে help অন্যান্য সহায়ক ফাংশন সংজ্ঞাটি একটি একক শ্রেণি বা শ্রেণি পরিবারের জন্য একটি ইউটিলিটি ফাংশন।
// a general helper
template <class T>
bool isPrinter(T& p){
return (dynamic_cast<Printer>(p))? true: false;
}
// specific helper for printers
namespace printer_utils {
namespace HP {
print_alignment_page() { printAlignPage();}
}
namespace Xerox {
print_alignment_page() { Alignment_Page_Print();}
}
namespace Canon {
print_alignment_page() { AlignPage();}
}
namespace Kyocera {
print_alignment_page() { Align(137,4);}
}
namespace Panasonic {
print_alignment_page() { exec(0xFF03); }
}
} //namespace
এখন isPrinter
এর শিরোনাম সহ যে কোনও কোডে উপলভ্য, তবে print_alignment_page
একটি using namespace printer_utils::Xerox;
নির্দেশিকা প্রয়োজন
। এক হিসাবে এটি উল্লেখ করতে পারেন
Canon::print_alignment_page();
আরও পরিষ্কার হতে।
সি ++ এসটিএলটির std::
নামস্থান রয়েছে যা এর প্রায় সমস্ত ক্লাস এবং ফাংশনগুলিকে কভার করে, তবে কোডারকে ক্লাসের নাম, ফাংশনের নাম ইত্যাদির বাইরে রাখার অনুমতি দেওয়ার জন্য এটি স্পষ্টভাবে তাদের 17 টিরও বেশি বিভক্ত করে দেয়, যদি তারা লিখতে চায় তবে তাদের নিজস্ব.
প্রকৃতপক্ষে, using namespace std;
কোনও শিরোনাম ফাইলটিতে ব্যবহার করার পরামর্শ দেওয়া হয় না বা যেমনটি প্রায়শই ঘটে থাকে তেমনি অভ্যন্তরীণ প্রথম লাইন হিসাবে main()
। std::
5 টি অক্ষর এবং প্রায়শই যে ফাংশনটি ব্যবহার করতে চায় (বিশেষত std::cout
এবং std::endl
!) তার উপস্থাপিত করার কাজটি বেশিরভাগ সময় মনে হয় তবে এটি কোনও উদ্দেশ্য করে।
নতুন সি ++ 11 এর মধ্যে বিশেষ পরিষেবাদির জন্য কিছু উপ-নামস্থান রয়েছে sub
std::placeholders,
std::string_literals,
std::chrono,
std::this_thread,
std::regex_constants
এটি ব্যবহারের জন্য আনা যেতে পারে।
একটি দরকারী কৌশল হ'ল নেমস্পেস রচনা । আপনার নির্দিষ্ট .cpp
ফাইলের জন্য আপনার প্রয়োজনীয় নেমস্পেসগুলি ধরে রাখতে একটি কাস্টম নেমস্পেসকে সংজ্ঞায়িত করে এবং আপনার প্রয়োজন এমন using
একটি নেমস্পেসের প্রতিটি জিনিসের জন্য একগুচ্ছ স্টেটমেন্টের পরিবর্তে এটি ব্যবহার করুন ।
#include <iostream>
#include <string>
#include <vector>
namespace Needed {
using std::vector;
using std::string;
using std::cout;
using std::endl;
}
int main(int argc, char* argv[])
{
/* using namespace std; */
// would avoid all these individual using clauses,
// but this way only these are included in the global
// namespace.
using namespace Needed; // pulls in the composition
vector<string> str_vec;
string s("Now I have the namespace(s) I need,");
string t("But not the ones I don't.");
str_vec.push_back(s);
str_vec.push_back(t);
cout << s << "\n" << t << endl;
// ...
এই কৌশলটি সম্পূর্ণরূপে এক্সপোজারকে সীমাবদ্ধ করে std:: namespace
( এটি বড়! ) এবং লোকেরা সবচেয়ে বেশি প্রায়শই লেখেন এমন সাধারণ কোড লাইনের জন্য একটি ক্লিনার কোড লিখতে দেয়।
static
কীওয়ার্ড সম্পর্কে শিখেছেন ?