সি ++ স্ট্রাক্টের জন্য ফাংশন


93

সাধারণত আমরা সি ++ স্ট্রাক্টের মতো একটি ভেরিয়েবল সংজ্ঞায়িত করতে পারি

struct foo {
  int bar;
};

আমরা একটি কাঠামোর জন্য ফাংশন সংজ্ঞায়িত করতে পারেন? কীভাবে আমরা এই ফাংশনগুলি ব্যবহার করব?


4
হ্যাঁ. আপনি C ++ এর ক্লাসের জন্য যেমন করেন
ডামকোডার

উত্তর:


142

হ্যাঁ, একটি ডিফল্ট অ্যাক্সেস স্তর (সদস্য-ভিত্তিক এবং উত্তরাধিকার অনুসারে) বাদে এর মতো 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

37

স্ট্রাক্টের ক্লাসগুলির মতো ফাংশন থাকতে পারে। পার্থক্য কেবলমাত্র তারা ডিফল্টরূপে সর্বজনীন:

struct A {
    void f() {}
};

অতিরিক্তভাবে, স্ট্রাইকগুলিতে কনস্ট্রাক্টর এবং ডেস্ট্রাক্টরও থাকতে পারে।

struct A {
    A() : x(5) {}
    ~A() {}

    private: int x;
};
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.