گیاهی ترین گیاهی ترین AnzanDigital فروشگاه
خانه / برنامه نویسی ++C / کلاس و اشیاء c/c++
C++-class-containing-data-function

کلاس و اشیاء c/c++

class
class

کلاس و اشیاء:

به مکانیزمی که امکان استفاده ی تلفیقی از داده و توابع را در یک واحد می دهد – کلاس می گوییم.هنگامی که یک کلاس تعریف شد،امکان تعریف متغییر هایی با – نوع آن فراهم میشود.متغییر های کلاس – اشیاء (Object) یا نمونه (Instance)  نامیده می شوند.به بیان دیگر یک کلاس یک نوع داده (Data Type) و یک اشیاء متغییر خواهد بود.معمولا کلاس ها با واژه ی class اعلان میشوند – قالب تعریف به صورت زیر خواهد بود:

class class_name
{
private:
members1;
protected:
members2;
public:
members3;
};

اگر class_name شناسه ی معتبری برای کلاس انتخاب شود،ساختار می تواند شامل اعضا (members) باشد،همچنین هر یک از اعضا می توانند یکی از دو نوع داده و یا تابع را اعلان نمایند.

اعضای کلاس به سه دسته تقسیم بندی می شوند:

Protected و Private,Public

این کلمات از عبارت های رزو شده هستند و حالت های دسترسی به اعضا را مشخص میکنند :

اعضاء private در کلاس،تنها امکان دسترسی از طریق اعضای همان کلاس را امکان پذیر است.امکان دسترسی از خارج کلاس فراهم نیست.

اعضاء Protected در کلاس،امکان دسترسی  از طریق اعضای همان کلاس و همچنین اعضای کلاس های مشتق شده شان امکان پذیر است.

اعضاء public در کلاس،امکان دسترسی از هر مکانی که شی به صورت قابل مشاهده باشد.

به صورت پیش فرض ، تمام اعضای کلاس با کلید واژه ی Class اعلان می شوند – دارای دسترسی Private به تمام اعضای خود هستند،بنابرین هر عضو که قبل از کلاس اعلان شده باشد،به صورت اتوماتیک دارای دسترسی Private می باشد.

class circle
{
private :
double radius;
public:
void setRadius(double r)
{
radius = r;
}
double getArea()
{
return 3.14*radius*radius;
}
};

اعلان اشیا :

بعد تعریف کلاس،امکان تعریف متغییر هایی با نوعی که به کلاس منتسب است،وجود دارد – نحوه ی اعلان یک شیء مشابه تعریف متغییر هاست،عبارت زیر دو شی رابا نوع circle تعریف میکند:

circle c1, c2;

دسترسی به اعضای کلاس:

بعد تعریف کلاس،امکان دسترسی به اعضای Public کلاس وجود دارد:

c1.setRadius(2.5);

تعریف توابع به عنوان اعضای کلاس:

امکان تعریف توابع درون کلاس وجود دارد،این گونه تعریف توابع به عنوان تعریف inline شناخته میشود و به صورت پیش فرض این تعریف مورد استفاده قرار میگیرد.همچنین این امکان وجود دارد که توابع درون کلاس اعلان شوند و در جایی دیگر تعریف آنها انجام شود.توابع تعریف شده در خارج کلاس معمولاً inline نمی باشند.

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

void circle :: setRadius(double r)
{
radius = r;
}

در زیر مثال کلی از طریقه ی اعلان و تعریف توابع داریم :

#include <iostream>

using namespace std;

class circle //specify a class
{
private :
double radius; //class data members
public:
void setRadius(double r);
double getArea(); //member function to get data from user
};

void circle :: setRadius(double r)
{
radius = r;
}

double circle :: getArea()
{
return 3.14*radius*radius;
}

int main()
{
circle c1; //define object of class circle
c1.setRadius(2.5); //call member function to initialize
cout<<c1.getArea();
return 0;
}

منتظر بخش های بعدی نیز باشید

منبع :: cppforschool

کانال تلگرام بیر رباتیک

درباره Ahrovani Hadi

مشاهده بیشتر

arducopter simulation

شبیه سازی اتوپایلوت و تشخیص کد های Aruco

ویدئوی پیوست شده شبیه سازی اتوپایلوت ardupilot با شبیه ساز gazebo را نشان میدهد. این …

دیدگاه بگذارید

4 دیدگاه ها روشن "کلاس و اشیاء c/c++"

با خبر سازی از
avatar

مرتب سازی بر اساس:   تازه ترین ها | قدیمی ترین | بیشترین تعداد رای
ahrovan
مهمان
ahrovan
3 سال ها 3 ماه ها مدت ها قبل

use synaptic and fix package’s

Simon Foong
مهمان
Simon Foong
3 سال ها 3 ماه ها مدت ها قبل

i am using the command mode, i have already install the apt-get install synaptic. but how i run it in command mode??

ahrovan
مهمان
ahrovan
3 سال ها 3 ماه ها مدت ها قبل

use command code for fix packages – search google ::

ex:
//
sudo aptitude -f
//
sudo apt-get -f install
//
sudo dpkg –configure -a

sudo apt-get clean

sudo apt-get update

//

sudo dpkg –configure -a –force-all

//
and … 🙂

Simon Foong
مهمان
Simon Foong
3 سال ها 3 ماه ها مدت ها قبل

Thanks, will try and see…

wpDiscuz