C ، C++ و C#برنامه نویسی و IT

برنامه نویسی شی گرا در c++ چه اهمیتی دارد؟

برنامه نویسی شی گرا در c++

C++ یک زبان برنامه نویسی محبوب است. این زبان برنامه نویسی برای ایجاد برنامه های رایانه ای استفاده می‌شود. زبان برنامه نویسی c++ یک زبان برنامه نویسی شی گرا است و برخی از مفاهیم ممکن است جدید باشد. برای آموختن بیشتر این زبان برنامه‌نویسی باید مرور کرد و تمرین نمود. در ادامه برنامه نویسی شی گرا در c++ را بهتر می‌شناسیم.

از سوی دیگر ویژگی‌های دیگر زبان برنامه‌نویسی c++ کراس پلتفرم بودن آن است که برای زبان‌هایی با کارایی بالا مورد استفاده باشد. این زبان برنامه‌نویسی کنترل زیادی بر منابع سیستم و حافظه به برنامه‌نویسان و توسعه‌دهندگان می‌دهد. در سالهای 2011، 2014 و 2017 این زبات چند بار به روز شده است.

از جمله دلیل‌های استفاده از زبان برنامه‌نویسی c++ آن است که ساختار روشنی به برنامه‌ها داده و استفاده مجدد از کدها را فراهم می‌سازد و به این سبب کاهش هزینه‌ها را به همراه دارد. این زبان برنامه‌نویسی portable است و می‌توان از آن برای توسعه برنامه‌هایی استفاده کرد که می‌توانند برای چند سیستم عامل سازگار شوند.

 

ویدیو پییشنهادی : آموزش برنامه نویسی C
آموزش برنامه نویسی C

 

یادگیری آن آسان است و می‌تواند سرگرم‌کننده نیز باشد. این زبان برنامه‌نویسی به زبانهای برنامه‌نویسی c# و جاوا نزدیک است. لذا امکان تغییر کد به سایر برنامه‌های مشابه را فراهم می‌کند.

شروع زبان C++

برای شروع استفاده از برنامه c++ دو مورد را نیاز دارید:

  1. یک ویرایشگر متن مانند دفترچه یادداشت برای نوشتن کد c++
  2. یک کامپایلر مانند GCC برای ترجمه کدهای C++ به زبانی که برای کامپیوتر قابل فهم است.

برای استفاده از زبان C++ نیازمند آن هستیم که کامپایلر مربوطه نصب شده باشد. با این فرض به دنبال آموزش برنامه ‌نویسی شی گرا در C++ خواهیم رفت. اما قبل از آن باید بیاموزیم که برنامه‌ نویسی شی گرا در C++ چیست؟ برای استفاده از برنامه نویسی شی گرا باید وارد کلاس‌ها شده و با مفاهیم آنها آشنا شویم. تابع سازنده کلاس را بشناسیم و با تابع عضو خصوصی در برنامه‌نویسی شی‌گرا آشنا شویم.

 

ویدیو پییشنهادی: اصول برنامه نویسی C و ++C
اصول برنامه نویسی C و ++C

 

کسانی که در حوزه برنامه‌نویسی فعالیت دارند با واژه OOP مخفف عبارت Object-Oriented Programming آشنا هستند. این کلمه همان چیزی است که آن را برنامه نویسی شی گرا در C++ می‌نامیم. این نوع برنامه‌نویسی بر خلاف برنامه‌نویسی رویه‌ای در مورد ایجاد اشیایی است که هم می‌توانند داده باشند و هم شامل توابع می‌شود. یعنی در برنامه‌نویسی شی‌گرا با دسته‌ها و گروه‌ها در قالب انواع توابع در ارتباط هستیم. از جمله مزیتهای برنامه‌ نویسی شی گرا در c++  و شاید در تمام برنامه‌هایی که این قابلیت را دارند می‌توان به موارد زیر اشاره نمود:

  • سرعت در اجرای برنامه
  • فراهم آوردن ساختار روشن برای نرم افزار
  • اصلاح و اشکال‌زایی از کدهای نوشته شده آسان است و از تکرار مکررات در کدنویسی جلوگیری می‌کند. این فرآیند را DRY نگهداشتن برنامه می‌نامند که مخفف Don’t Repeat Yourself است.
  • امکان ایجاد برنامه‌های کامل قابل استفاده مجدد با کد کمتر و زمان توسعه کوتاهتر

کلاس و شی در برنامه نویسی شی گرا در c++

کلاس‌ها و اشیا دو جنبه اصلی برنامه‌نویسی شی‌گرا هستند. در تصویر زیر می‌توان تفاوت این دو را به وضوح درک نمود:

 

کلاس و شی در برنامه نویسی شی گرا در c++

 

بنابراین یک کلاس به عنوان الگوی اشیا بوده و یک شی یک نمونه از اجزای کلاس است. وقتی اشیا به صورت منفرد ایجاد می‌شوند تمام متغیرها و توابع را از کلاس خود به ارث می‌برند. در ادامه با مفاهیم بیشتری در این خصوص و مثال‌های متنوع آشنا خواهیم شد.

کلاسها و اشیا در c++

C++ یک زبان برنامه نویسی شی‌گرا می‌باشد. همه چیز در c++ همراه با ویژگی‌ها و روش‌های آن با کلاس و اشیاء مرتبط است. به عنوان یک مثال ساده در زندگی معمولی می‌توان به این مثال اشاره کرد که ماشین یک شی است. این خودرو دارای خصوصیاتی مانند وزن، رنگ و خصوصیات دیگر است.

 

 

رانندگی و نحوه ترمز گرفتن به عنوان روش و سبک به حساب می‌آیند. در برنامه‌نویسی نیز می‌توان مفاهیم را به همین سادگی فهمید و تعمیم داد. ویژگی‌ها و روش‌ها عموما متغیرها و توابه متعلق به کلاس هستند. اینها اغلب اعضای کلاس نامیده می‌شوند. کلاس یک نوع داده تعریف شده توسط کاربر است که از آن در برنامه خود استفاده می‌نماید و به عنوان سازنده شی یا طرح اصلی برای ایجاد اشیاء کار می‌کند.

ساخت کلاس در c++

برای ایجاد کلاس نیازمند کلید واژه مرتبط هستیم. با یک مثال ساخت یک کلاس را با هم مرور می‌کنیم.

 

class MyClass {           // The class

  public:                       // Access specifier

    int myNum;           // Attribute (int variable)

    string myString;  // Attribute (string variable)

};

 

در این کد نوشته شده کلید واژه class برای ایجاد کلاس MyClass به کار برده شده است. کلید واژه public به عنوان دسترس مشخص کننده است که برای قابل دسترس شدن اعضای کلاس حارج از کلاس به کار می‌رود. در این کدهای نوشته شده، متغیر صحیح myNum و متغیر رشته‌ای myString وجود دارند که درون کلاس تعریف شده‌اند. وقتی متغیرها در یک کلاس معرفی می‌شوند آنها را صفت می‌نامیم. پایان هر کلاس نیز با یک ; بسته خواهد شد.

 

ساخت یک شی

در زبان برنامه‌نویسی شی‌گرای c++، یک شی از یک کلاس ایجاد می‌شود. در مثال قبل کلاس MyClass ایجاد شده است. لذا برای ایجاد اشیاء از این کلاس استفاده خواهیم کرد. برای ایجاد یک شی از MyClass نام کلاس را مشخص کنید و سپس نام آن را دنبال نمایید. برای دستیابی به صفات کلاس (myNum و myString) از نقطه در شی (.)  استفاده می‌نماییم. در این خصوص به مثال زیر توجه نمایید:

#include <iostream>

#include <string>

using namespace std;




class MyClass {       // The class

  public:             // Access specifier

    int myNum;        // Attribute (int variable)

    string myString;  // Attribute (string variable)

};




int main() {

  MyClass myObj;  // Create an object of MyClass




  // Access attributes and set values

  myObj.myNum = 15;

  myObj.myString = "Some text";




  // Print values

  cout << myObj.myNum << "\n"; 

  cout << myObj.myString; 

  return 0;

}

خرجی این برنامه شامل موارد زیر است:

15

Some text

همانطور که مشاهده شد با ساخت شی مورد نظر خروجی استخراج گردید. برای تفهیم بیشتر با چند مثال دیگر، تابع و اشیاء را با هم مرور می‌نماییم. در مثال زیر مشاهده خواهد شد که چند شی درون یک کلاس ایجاد شده‌اند:

#include <iostream>

#include <string>

using namespace std;




class Car {

  public:

    string brand;

    string model;

    int year;

};




int main() {

  Car carObj1;

  carObj1.brand = "BMW";

  carObj1.model = "X5";

  carObj1.year = 1999;




  Car carObj2;

  carObj2.brand = "Ford";

  carObj2.model = "Mustang";

  carObj2.year = 1969;




  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";

  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";

  return 0;

}




خروجی این برنامه عبارت است از:

BMW X5 1999

Ford Mustang 1969

توابع سازنده کلاس در c++

توابع سازنده کلاس در C++ به عنوان روش‌های خاصی هستند که به صورت اتوماتیک فراخوانی شده زمانی که شی‌ای از کلاس ایجاد می‌شود. برای ایجاد توابع سازنده کلاس از نام مشابه همان کلاس استفاده نموده و به دنبال آن () را اضافه می‌نماییم. در مثال زیر با این مفهوم آشنا خواهیم شد:

 

#include <iostream>

using namespace std;




class MyClass {     // The class

  public:           // Access specifier

    MyClass() {     // Constructor

      cout << "Hello World!";

    }

};




int main() {

  MyClass myObj;    // Create an object of MyClass (this will call the constructor)

  return 0;

}

خروجی این برنامه عبارت است از:

Hello World!

توابع سازنده کلاس همنام کلاس بوده و همیشه به صورت عمومی به کار رفته و مقدار بازگشت نخواهند داشت. در ادامه با هم پارامترهای توابع سازنده کلاس را بررسی می‌نماییم.

 

مقاله پییشنهادی: آشنایی با توابع c++
آشنایی با توابع c++

پارامترهای توابع سازنده کلاس

توابع سازنده کلاس می‌توانند پارامترهایی را بگیرند. این پارامترها برای تنظیم مقادیر اولیه برای ویژگی‌ها مفید هستند. در مثال زیر کلاسی در نظر گرفته شده که برخی ویژگی‌ها مانند مارک، مدل سال و برخی مقادیر دیگر را در نظر گرفته است. در داخل سازنده، صفات را برابر با پارامترهای سازنده قرار می‌دهیم. زمانی که سازنده کلاس فراخوانی می‌شود، پارامترها به سازنده کلاس منتقل شده و مقادیر با توجه به ویژگی‌ها با هم هماهنگ می‌شوند. به مثال زیر توجه نمایید و خروجی برنامه را در نظر بگیرید:

 

#include <iostream>

using namespace std;




class Car {        // The class

  public:          // Access specifier

    string brand;  // Attribute

    string model;  // Attribute

    int year;      // Attribute

    Car(string x, string y, int z) {  // Constructor with parameters

      brand = x;

      model = y;

      year = z;

    }

};




int main() {

  // Create Car objects and call the constructor with different values

  Car carObj1("BMW", "X5", 1999);

  Car carObj2("Ford", "Mustang", 1969);




  // Print values

  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";

  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";

  return 0;

}

 

خروجی برنامه عبارت است از:

 

BMW X5 1999

Ford Mustang 1969

 

دقیقا به مانند توابع می‌توان سازنده کلاس را خارج از کلاس نیز تعریف نمود. ابتدا سازنده را در داخل کلاس معرفی می‌نماییم و سپس آن را خارج از کلاس با مشخص کردن نام کلاس تعریف نموده و به دنبال آن، عملگر پس زمینه را وارد نمایید. به مثال زیر در این خصوص توجه نمایید:

 

#include <iostream>

using namespace std;




class Car {        // The class

  public:          // Access specifier

    string brand;  // Attribute

    string model;  // Attribute

    int year;      // Attribute

    Car(string x, string y, int z); // Constructor declaration

};




// Constructor definition outside the class

Car::Car(string x, string y, int z) {

  brand = x;

  model = y;

  year = z;

}




int main() {

  // Create Car objects and call the constructor with different values

  Car carObj1("BMW", "X5", 1999);

  Car carObj2("Ford", "Mustang", 1969);




  // Print values

  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";

  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";

  return 0;

}

 

خروجی این برنامه به مانند قبل خواهد بود. این برنامه به مانند برنامه قبل بوده و فقط سازنده کلاس خارج از کلاس در برنامه کدنویسی شده است.

 

تابع عضو خصوصی در برنامه نویسی شی گرا

در زبان برنامه نویسی c++ با واژه کلیدی عمومی یا public آشنا هستید. این واژه تقریبا در همه نمونه‌های کلاس وجود دارد. به مثال زیر توجه نمایید:

 

#include <iostream>

using namespace std;




class MyClass {   // The class

  public:         // Public access specifier

    int x;        // Public attribute (int variable)

};




int main() {

  MyClass myObj;  // Create an object of MyClass




  // Access attributes and set values

  myObj.x = 15;




  // Print values

  cout << myObj.x; 

  return 0;

}

 

خروجی این برنامه عدد 15 است.

کلید واژه عمومی یک مشخص کننده دسترسی است. این مشخص کننده‌ها نحوه دسترسی به ویژگی‌ها و روش‌ها را مشخص می‌کنند. در مثال قبل اعضاء به صورت عمومی تعریف شده‌اند. این بدان معناست که از خارج از کد می‌توان به آنها دسترسی پیدا کرد و اصلاحاتی انجام داد. در c++ سه مشخص‌کننده دسترسی داریم.

  • اول حالت عمومی که اعضای خارج از کلاس قابل دسترس خواهند بود.
  • حالت خصوصی که از خارج کلاس نمی‌توان به اعضاء دسترسی داشت.
  • حالت محافظت شده که در این حالت اعضاء از خارج کلاس قابل دسترس نبوده اما از طریق ارث‌بری در کلاسهای دیگر می‌توان به اعضاء دسترسی داشت. در بحث ارث‌بری به این موضوع اشاره خواهد شد.

در مثال زیر به تفاوت حالت عمومی و خصوصی اشاره شده است:

 

#include <iostream>

using namespace std;




class MyClass {

  public:    // Public access specifier

    int x;   // Public attribute

  private:   // Private access specifier

    int y;   // Private attribute

};




int main() {

  MyClass myObj;

  myObj.x = 25;  // Allowed (x is public)

  myObj.y = 50;  // Not allowed (y is private)

  return 0;

}

 

خروجی برنامه شامل خطاهایی است که دلیل آن متغیری است که در محیط خصوصی تعریف شده است.

 

In function 'int main()':

Line 8: error: 'int MyClass::y' is private

Line 14: error: within this context

 

با ما در آموزش زبان برنامه نویسی c++ همراه باشید که شامل بخشهای متنوع دیگری از برنامه نویسی شی گرا در c++ بوده و نیازهای کدنویسی افراد را مرتفع‌تر خواهد نمود.

سعید هابطی

چند سالی میشه که در زمینه سئو و دیجیتال مارکتینگ در حال فعالیت هستم. به موسیقی و فلسفه علاقه ی خاصی دارم و بیشتر زمان رو صرف مطالعه و نوازندگی می کنم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا