সাধারণত আমরা সি ++ স্ট্রাক্টের মতো একটি ভেরিয়েবল সংজ্ঞায়িত করতে পারি
struct foo {
int bar;
};
আমরা একটি কাঠামোর জন্য ফাংশন সংজ্ঞায়িত করতে পারেন? কীভাবে আমরা এই ফাংশনগুলি ব্যবহার করব?
উত্তর:
হ্যাঁ, একটি ডিফল্ট অ্যাক্সেস স্তর (সদস্য-ভিত্তিক এবং উত্তরাধিকার অনুসারে) বাদে এর মতো struct
একটি class
। (এবং class
কোনও টেম্পলেট ব্যবহার করার সময় অতিরিক্ত অর্থ বহন করে)
শ্রেণীর দ্বারা সমর্থিত প্রতিটি কার্যকারিতা ফলস্বরূপ স্ট্রাক্ট দ্বারা সমর্থিত। আপনি যেমন ক্লাসের জন্য সেগুলি ব্যবহার করেন সেভাবে আপনিও পদ্ধতিগুলি ব্যবহার করেন।
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
স্ট্রাক্টের ক্লাসগুলির মতো ফাংশন থাকতে পারে। পার্থক্য কেবলমাত্র তারা ডিফল্টরূপে সর্বজনীন:
struct A {
void f() {}
};
অতিরিক্তভাবে, স্ট্রাইকগুলিতে কনস্ট্রাক্টর এবং ডেস্ট্রাক্টরও থাকতে পারে।
struct A {
A() : x(5) {}
~A() {}
private: int x;
};