منبع اصلی نوشتار زیر در این لینک قرار دارد

مقدمه ای بر شی گرایی در ++C

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

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

ساخت کلاس

ساخت کلاس، به غایت ساده است. در واقع ساخت یک کلاس جدید به این شکل صورت میگیره :

کد   
class CLASSNAME {
 	....
 };

درون بدنه کلاس، میتونیم متغیرهای مربوط به کلاس، و متدها رو تعریف کنیم. که اونها هم سه نوع public و private و protected دارن. نوع public نوعیه که همه بهش دسترسی دارن. نوع private نوعی هست که فقط خود کلاس (و دوستانش! که بعدا مفهومشون رو توضیح خواهم داد) بهش دسترسی داره و نوع protected هم نوعیه که فقط و فقط خود کلاسمون بهشون دسترسی داره. هرچیزی که توی کلاس تعریف کنیم، پیشفرض private در نظر گرفته میشه. و خودمون میتونیم مشخص کنیم که private یا public یا protected باشن.

خب، فرض کنید الان میخوایم کلاسی بسازیم به اسم student و نیازه که اسم، فامیل و شمار دانشجویی واردش بشه. خیلی ساده کدش رو مینویسیم :

کد   
class Student {
	public:
	int number;
	string name;
	string lastname;
};

این کلاس، یک کلاس کامل به شمار میره. تنها چیزی که الان نیاز داریم، یک متد هست که این اطلاعات رو چاپ کنه! پس باید یک تابع درون کلاسمون تعریف کنیم تا این کار رو برامون انجام بده!

یعنی کلاس ما و متدش به این شکل تعریف میشن :

کد   
class Student {
	public:
	int number;
	string name;
	string lastname;
	void PrintInfo();
};
 
void Student::PrintInfo() {
	cout<<"Name: "<<student.name<<endl;
	cout<<"Last name: "<<student.lastname<<endl;
	cout<<"Number: "<<student.number<<endl;
}

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

ساخت یک شیء

یادتان نرود که با تعریف کلاس ها، در واقع یک variable type جدید ساختید. پس تعریف یک شیء بسیار آسان است! چرا که صرفا کافیست اسم کلاس + اسم متغیر را نوشته و بعد برنامه را اجرا کنیم!

برنامه ما به این شکل در میاد آخر سر :

کد   
#include <iostream>
#include <string.h>
using namespace std;
class Student {
public:
int number;
string name;
string lastname;
void PrintInfo(void);
};
void Student::PrintInfo(void) {
cout<<"Name: "<<name<<endl;
cout<<"Last name: "<<lastname<<endl;
cout<<"Number: "<<number<<endl;
}
int main(){
Student s1;
s1.name = "Muhammadreza";
s1.lastname = "Haghiri";
s1.number = 12;
s1.PrintInfo();
return 0;
}

 

همونطور که می بینید، شیء s1 بلافاصله بعد از کلاس مربوطه، تولید شده. و بعد هم ویژگی های مربوطه اضافه شدند و بعدش هم متد مربوطه رو فراخوانی کردیم.

به همین سادگی!

تا آموزش بعدی، بدرود!

FacebookTwitterGoogle+Share



برچسب ها : , ,