در این آموزش می خواهیم با مفهوم کلاس و شیء در برنامه نویسی ++C آشنا شویم و به طور کلی ارتباط بین کلاس و شیء در برنامه نویسی شیء گرا را بررسی کنیم.
مفهوم کلاس Class
کلاس مفهومی است که در برنامه نویسی شیء گرا (OOP : Object Oriented Programming) مطرح می شود. هدف از تعریف کلاس تعریف یک نوع داده جدید است. کلاس هم می تواند توسط برنامه نویس ایجاد شود، هم اینکه کلاس هایی از قبل در زبان برنامه نویسی به صورت آماده تعریف شده اند و تشکیل مجموعهای از کلاس های آماده می دهند که به آن ها کتابخانه یا library گفته می شود. بنابراین برنامه نویس می تواند با فراخوانی کتابخانه، از کلاس های تعریف شده در آن استفاده کند.
نحوه تعریف کلاس مانند structure است. برای تعریف کلاس در زبان ++C طبق الگوی زیر از کلمه کلیدی Class استفاده می شود.
Class className{ //Private Variables and Functions Public: //Public Variables and Functions Private: //Private Variables and Functions Protected: //Protected Variables and Functions };
همان طور که مشاهده می شود، عناصر کلاس می توانند در سه سطح خصوصی (Private)، عمومی (Public) و یا محافظت شده (Protected) تعریف شوند. عناصر خصوصی عناصری هستند که فقط از داخل کلاس اجازه دسترسی به آن ها وجود دارد. این ویژگی یکی از خصوصیات مهم برنامه نویسی شیء گرا است که به آن محرمانگی یا Encapsulation گفته می شود. عناصر عمومی هم در داخل هم در خارج از کلاس اجازه دسترسی دارند. عناصر محافظت شده مانند عناصر خصوصی هستند، ولی از طریق کلاس هایی که از کلاس مد نظر ارث بری می کنند و نیز از طریق کلاس های دوست قابل دسترسی هستند. توجه کنید که عناصر کلاس به طور پیش فرض خصوصی هستند؛ لذا می توان کلمه private را قرار نداد.
شیء Object
وقتی در برنامه خود یک instance از کلاس بگیریم، به عبارت ساده تر وقتی در برنامه یک متغیر از جنس کلاس تعریف کنیم، به آن یک “object” یا “شیء” گفته می شود. بنابراین شیء، نمونه ای از کلاس و کلاس توصیف کننده شیء است.
دسترسی به عنصری از کلاس
اگر بخواهیم به عنصری از کلاس، خارج از آن کلاس دسترسی داشته باشیم؛
اولاً آن عنصر باید از نوع public تعریف شده باشد، در غیر این صورت اجازه دسترسی به ما داده نمی شود. دوماً یک object از کلاس مد نظر می گیریم. سپس با نوشتن نام object و بعد “.” می توانیم به عناصر کلاس دسترسی داشته باشیم. این عنصر می تواند یک متغیر کلاس، یا یک تابع تعریف شده در کلاس یا یک رخداد (Event) باشد.
اطلاعات بیشتر برای درک عمیق تر
اگر با مفهوم استراکچر یا ساختمان در برنامه نویسی سی و سی پلاس پلاس آشنا نیستید میتوانید به آموزش ساختمان یا استراکچر (struct) در زبان برنامه نویسی C مراجعه کنید. و همچنین ما قبلا یک نوشتهای برای لایبری های آردوینو نوشته بودیم و در مقدمات آموزش، مفاهیم کلاس و شیء ++C را کاملا بررسی کردیم و به زبان خیلی ساده بیان کردیم تا دوستان متوجه موضوع بشن، در نوشته چگونه یک کتابخانه آردوینو بنویسیم؟ این مفاهیم را بخوانید. همچنین اگر خیلی دوست داشتین با نکات پیشرفته زبان سی پلاس پلاس آشنا بشید نوشته نکات برنامه نویسی پیشرفته C و ++C – اشاره گر های تابعی، typedef ، const را بخوانید.
دوستان عزیز این مطالب یک خلاصه ای کوتاه و خیلی ساده از مفهوم کلاس (Class) و شیء (Object) در برنامه نویسی ++C بود و برای اطلاعات بیشتر به لینک های بالا و یا یک کتاب برنامه نویسی زبان سی پلاس پلاس مراجعه کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.