توضیحات محصول دانلود پاورپوینت آشنایی با مقدمات زبان C++ و بررسی ساختار های تصمیم گیری و تکرار (کد13381)
دانلود پاورپوینت آشنایی با مقدمات زبان C++ و بررسی ساختار های تصمیم گیری و تکرار
\nبرنامه سازی پیشرفته c++
\n\n عنوان های پاورپوینت :
\n\nآشنایی با مقدمات زبان C++ و بررسی ساختار های تصمیم گیری و تکرار
\nفهرست مطالب
\nفصل اول
\nفهرست مطالب فصل اول
\nتاریخچه مختصر C++
\nقانون نامگذاری شناسهها
\nمتغیرها
\nاعلان متغیرها
\nتخصیص مقادیر به متغیرها
\nدادههای از نوع کرکتر
\nکرکترهای مخصوص
\nرشتهها
\nمثال 2 :
\nنمایش مقادیر دادهها
\nمثال :
\nدریافت مقادیر متغیرها
\nمثال :
\nعملگر انتساب
\nمثال :
\nعملگرهای محاسباتی
\nمثال 1 :
\nمثال 2 :
\nعملگرهای افزایش و کاهش
\nمثال :
\nمثال :
\nعملگر sizeof
\nعملگرهای جایگزینی محاسباتی
\nاولویت عملگرها
\nمثال 1 :
\nمثال 2 :
\nتوضیحات (Comments)
\nتوابع کتابخانه
\nنحوه استفاده از توابع کتابخانه ای
\nبرنامه در C++
\nروش اول :
\nروش دوم :
\nنکات-2
\nerror
\n برنامه زیر یک حرف انگلیسی کوچک را گرفته به حرف بزرگ تبدیل مینماید.
\nدو عدد از نوع اعشاری را گرفته مجموع و حاصلضرب آنها را محاسبه و نمایش میدهد.
\nفصل دوم
\nفهرست مطالب فصل دوم
\nعملگرهای رابطه ای
\nعملگر شرطی
\nمثال 1 :
\nدستورالعمل شرطی
\nمثال 1 :
\nمثال 2:
\nعملگر کاما
\nمثال :
\nعملگرهای منطقی
\nجدول درستی سه عملگر شرطی
\nچند مثال :
\nبرنامه زیر طول سه پارهخط را از ورودی گرفته مشخص مینماید که آیا تشکیل یک مثلث میدهد یا خیر؟
\nدستورالعمل For
\nبرنامه زیر عدد صحیح و مثبت n را از ورودی گرفته فاکتوریل آنرا محاسبه ونمایش میدهد.
\nبرنامه زیر مجموع اعداد صحیح و متوالی بین 1 تا n را محاسبه نموده و نمایش میدهد.
\nبرنامه زیر ارقام 0 تا 9 را نمایش میدهد.
\nفصل سوم
\nفهرست مطالب فصل سوم
\nدستورالعمل while
\nتفاوت دستورهای while و for
\nمثال :
\nدستورالعمل do while
\nتفاوت دستورهای do while و while
\nمثال :
\nدستورالعمل break
\nمثال 1 :
\nمثال 2:
\nمثال 3:
\nمثال 4:
\nدستورالعمل continue
\nمثال 1:
\nمثال 2:
\nدستورالعمل switch
\nشکل کلی دستور العمل Switch
\nمثال 1 :
\nمثال 2 :
\nتابع cin.get() :
\nعملگر static_cast
\nمثال 1:
\nمثال 2:
\nجدول اولویت عملگرها
\nفصل چهارم
\nفهرست مطالب فصل چهارم
\nاعداد تصادفی
\nنکته :
\nتعریف نوع داده (typedef)
\nمثال :
\nدادههای از نوع شمارشی
\nچند مثال :
\nتوجه :
\nفرمتهای مختلفه مقادیر خروجی
\nفصل پنجم
\nفهرست مطالب فصل پنجم
\nآرایه یک بعدی
\nکاربرد آرایه ها
\nتخصیص مقادیر اولیه به عناصر آرایه :
\nدریافت مقادیر عناصر آرایه :
\nاگر تعداد مقادیر اولیه کمتر از تعداد عضوهای آرایه باشد عضوهای باقیمانده بطور اتوماتیک، مقدار اولیه صفر میگیرند.
\nبایستی توجه داشت که آرایهها به صورت ضمنی مقدار اولیه صفر نمیگیرند. برنامه نویس باید به عضو اول آرایه، مقدار اولیه صفر تخصیص دهد تا عضوهای باقیمانده بطور اتوماتیک، مقدار اولیه صفر بگیرند.
\nدستور زیر یک آرایه یک بعدی شش عنصری از نوع float ایجاد مینماید.
\nبرنامه ذیل 100 عدد اعشاری و مثبت را گرفته تشکیل یک آرایه میدهد سپس مجموع عناصر آرایه را مشخص نموده نمایش میدهد.
\nبرنامه ذیل 20 عدد اعشاری را گرفته تشکیل یک آرایه داده سپس کوچکترین عنصر آرایه را مشخص و نمایش میدهد.
\nبرنامه زیر 100 عدد اعشاری را گرفته بروش حبابی (Bubble sort) بصورت صعودی مرتب مینماید.
\nآرایههای دوبعدی (ماتریسها)
\nتخصیص مقادیر اولیه به عناصر آرایه :
\nبرنامه زیر یک ماتریس 3*4 را گرفته مجموع عناصر آن را مشخص نموده و نمایش میدهد.
\nفصل ششم
\nفهرست مطالب فصل ششم
\nتعریف توابع
\nشکل کلی توابع بصورت زیر میباشند :
\nتابع زیر یک حرف کوچک را به بزرگ تبدیل مینماید.
\nبرنامه کامل که از تابع قبل جهت تبدیل یک حرف کوچک به بزرگ استفاده مینماید.
\nتابع maximum دو مقدار صحیح را گرفته بزرگترین آنها را برمیگرداند.
\nبرنامه کامل که از تابع maximum جهت یافتن ماکزیمم دو مقدار صحیح استفاده می نماید.
\nبرنامه زیر یک مقدار مثبت را گرفته فاکتوریل آنرا محاسیه نموده نمایش میدهد.
\nاحضار بوسیله مقدار ( Call By Value )
\nتابع بازگشتی (recursive functions)
\nنحوه محاسبه فاکتوریل از طریق تابع بازگشتی
\nتابع بازگشتی محاسبه فاکتوریل
\nنحوه محاسبه n امین مقدار دنباله فیبناکی از طریق تابع بازگشتی
\nبرنامهزیر n امین مقدار دنبالة فیبناکی (fibonacci) را مشخص و نمایش میدهد.
\nبرنامه زیر یک خط متن انگلیسی را گرفته آنرا وارون نموده نمایش میدهد.
\nدر برنامه زیر تابع modify آرایه a را بعنوان پارامتر میگیرد.
\nتوابع درون خطی (inline)
\nاشکال توابع inline
\nمثالی از توابع درون خطی
\nانتقال پارامترها از طریق ارجاع
\nانتقال پارامترها از طریق ارجاع
\nمثال :
\nنکته :
\nبرنامهزیر با استفاده از fswap دو مقدار اعشاری را مبادله مینماید.
\nکلاسهای حافظه (storage classes)
\nبطور کلی کلاس حافظه متغیرها به چهار دستة تقسیم میگردد :
\nمثال :
\nمثال :
\nکاربرد کلاس register
\nسربارگذاری توابع (function overloading)
\nمثال :
\nفصل هفتم
\nفهرست مطالب فصل هفتم
\nساختارها
\nتعریف ساختار
\nمثال :
\nبه دو صورت می توان اعلان یک متغیر از نوع ساختار را نمایش داد :
\nبه ساختارها میتوان مقدار اولیه نیز تخصیص داد
\nدسترسی به عناصر یک ساختار
\nمثال :
\nنکته :
\nنکته :
\nبرنامه زیر هر عدد مختلط را بصورت یک ساختار در نظر گرفته، دو عدد مختلط را میگیرد و مجموع آنها را مشخص و نمایش میدهد.
\nunion
\nمثال :
\nمثال :
\nاشارهگرها (Pointers)
\nنکته :
\nمثال :
\nآرایه یک بعدی و اشاره گرها
\nساختارها و اشاره گرها
\nآرایههای دوبعدی و اشارهگرها
\nآرایههای دوبعدی و اشارهگرها
\nدر برنامه زیر یک آرایه 5 عنصری از نوع int ایجاد شده و مقادیر عناصر آرایه را به چهار طریق نمایش میدهد.
\nتخصیص حافظه به صورت پویا یا (عملگر new)
\n برای تخصیص حافظه باندازه 20 مقدار از نوع int که اشارهگر ptx به آن اشاره نماید بصورت زیر عمل میشود.
\nبرنامه زیر یک فضای n عنصری از نوع اعشاری در حافظه ایجاد نموده، سپس آنرا مقدار داده و مجموع مقادیر رامشخص و نمایش میدهد.
\nبرنامه زیر آرایههای n عنصری از ساختار را ایجاد مینماید.
\nبرنامه زیر دو مقدار اعشاری را گرفته مقادیر آنها را بکمک تابع swap جابهجا مینماید.
\nرشتهها و توابع مربوطه
\nرشته و اشاره گر
\nبرنامه ذیل پنج اسم را بصورت 5 رشته در نظر گرفته آنها را بترتیب حروف الفباء مرتب نموده نمایش میدهد.
\nتابع strcmpi(s1, s2)
\nتابع ) strcmp(s1, s2
\nتابع ) strncmp(s1, s2,n
\nتابع (strcat(s1, s2
\nتابع (strncat(s1, s2,n
\nتابع (strlen(s
\nتابع (strlen(s
\nتابع strcpy(s1,s2)
\nتابع (strncpy(s1, s2,n
\nمثال :
\nمثال :
\nتابع زیر معادل تابع کتابخانه strcmp می باشد.
\nفصل هشتم
\nفهرست مطالب فصل هشتم
\nتعریف شی گرایی
\nتعریف شی گرایی
\nنکته مهم :
\nمحصورسازی (Encapsulation )
\npolymorphism (چند ریختی)
\ninheritance (ارث بری)
\nپشته (stack)
\nایجاد شی (object)
\nمثال :
\nنکته :
\nنحوه تعریف تابع عضو یک کلاس
\nبرنامه کامل stack :
\nارث بری
\nمثال :
\nنکته :
\nسازندهها و نابودکنندهها (constructors and destructors)
\nتوابع دوست (friend functions)
\nمثال :
\nنکته :
\nکلاسهای دوست (friend classes)
\nمثال :
\nتوابع سازنده پارامتردار
\nمثال :
\nتوابع سازنده یک پارامتری
\nعضوهای static
\nمثال :
\nnested classes (کلاسهای تودرتو)
\nlocal classes (کلاسهای محلی)
\nدر مورد کلاسهای محلی رعایت نکات زیر ضروری است :
\nاستفاده از object ها بعنوان پارامترهای توابع
\nبرگشت اشیاء (returning objects)
\nمثال :
\nانتساب اشیاء (object assignment)
\nمثال :
\nآرایه اشیاء (array of objects)
\nمثال :
\nاشارهگر به اشیاء (pointers to objects )
\nمثال :
\nاشارهگر this (this pointer)
\nمثال :
\nتوابع مجازی و پلی مرفیسم (virtual functions)
\nمثال :
\n \n\n \n\n
\n\nقسمت ها و تکه های اتفاقی از فایل\n\nبرنامه زیر هر عدد مختلط را بصورت یک ساختار در نظر گرفته، دو عدد مختلط را میگیرد و مجموع آنها را مشخص و نمایش میدهد.\n\n#include <iostream.h>\n\nint main( )\n\n{\n\nstruct complex{\n\nfloat a;\n\nfloat b; } x, y, z;\n\ncout << enter 2 complex numbers << endl ;\n\ncin >> x.a>>x.b ;\n\ncout << endl;\n\ncin >> y.a >> y.b;\n\nz.a = x.a + y.a ;\n\nz.b = x.b + y.b ;\n\ncout << endl << z.a << << z.b;\n\nreturn 0 ;\n\n}\n\nunion\n\nمثال :\n\nunion id\n\n{\n\nchar color [10];\n\nint size;\n\n} x , y;\n\nمثال :\n\nunion xpq\n\n{\n\nint x ;\n\nchar y[2] ;\n\n} p ;\n\nاشارهگرها (Pointers)\n\nاشارهگرها (Pointers)\n\nنکته :\n\nدر کامپیوتر آدرسها معمولاً دو بایت اشغال مینمایند. اگر آدرس x را در px قرار دهیم آنگاه میگوئیم که px به x اشاره مینماید.\n\nمثال :\n\nint y , x , *px ;\n\nx = 26 ;\n\npx = &x ;\n\nآرایه یک بعدی و اشاره گرها\n\nساختارها و اشاره گرها\n\nمیتوان اشارهگری را تعریف نمود که به اولین بایت یک ساختار (struct) اشاره نماید.\n\nآرایههای دوبعدی و اشارهگرها\n\nیک آرایه دوبعدی بصورت تعدادی آرایه یک بعدی میتوان تعریف نمود.\n\nاگر x یک ماتریس 5 سطری و 4 ستونی از نوع اعشاری باشد قبلاً این ماتریس را با\n\nfloat x[5][4];\n\nمعرفی کردیم. حال با استفاده از اشارهگرها بصورت زیر معرفی نمائیم:\n\nآرایههای دوبعدی و اشارهگرها\n\nدر برنامه زیر یک آرایه 5 عنصری از نوع int ایجاد شده و مقادیر عناصر آرایه را به چهار طریق نمایش میدهد.\n\n#include <iostream.h>\n\n#include <conio.h>\n\nint main( )\n\n{\n\nint x[ ]={12, 25, 6, 19, 100};\n\nclrscr( );\n\nint *px=x;\n\n//نام آرایه بدون اندیس، اشاره به عنصر اول آرایه مینماید\n\nfor(int i=0; i<=4; i++)\n\ncout << *(x+i) << endl;\n\n//the second method\n\nfor(i=0; i<5; i++)\n\ncout << x[ i ] << n;\n\n//the third method\n\nfor(i=0; i<=4; i++)\n\ncout << px[ i ]<<endl;\n\n//the forth method\n\nfor(i=0; i<=4; i++)\n\ncout << *(px+i)<<endl;\n\nreturn 0; }\n\nتخصیص حافظه به صورت پویا یا (عملگر new)\n\nاز عملگر new برای تخیصیص حافظه به صورت پویا می توان استفاده نمود ، در ضمن میتوان برای بلوکی از حافظه که تخصیص یافته مقدار اولیه تعیین نمود.\n\nبرای تخصیص حافظه باندازه 20 مقدار از نوع int که اشارهگر ptx به آن اشاره نماید بصورت زیر عمل میشود.\n\nint *ptx;\n\nptx = new int [20];\n\nبرنامه زیر یک فضای n عنصری از نوع اعشاری در حافظه ایجاد نموده، سپس آنرا مقدار داده و مجموع مقادیر رامشخص و نمایش میدهد.\n\n#include <iostream.h>\n\nint main( )\n\n{\n\nint n;\n\nfloat *ptr, tot = 0.0;\n\ncout << enter a value for n << endl;\n\ncin >> n;\n\nptr=new float [n];\n\nfor(int j=0; j<n; ++j)\n\n{\n\ncin >> *(ptr + j);\n\ncout << n ;\n\n}\n\n(for(j=0; j<=n-1; ++j\n\n(tot += *(ptr + j;\n\ncout << tot ;\n\n// in order to free the space use\n\ndelete[ ] ptr ;\n\nreturn 0;\n\n}\n\nبرنامه زیر آرایههای n عنصری از ساختار را ایجاد مینماید.\n\n#include <iostream.h>\n\n#include <conio.h>\n\nint main( )\n\n{\n\nstruct rec {\n\nfloat a;\n\nint b; } ;\n\nint n;\n\nrec *ptr;\n\nclrscr( );\n\ncout << how many records? n\n\ncin >> n ;\n\nptr = new rec[n];\n\nfor(int i=0; i<n; ++i) {\n\ncout <<((ptr+i) b=i) << ;\n\ncout <<((*(ptr +i)).a = i+0.5) << endl ;\n\ndelete [ ] ptr;\n\nreturn 0 ; }\n\nبرنامه زیر دو مقدار اعشاری را گرفته مقادیر آنها را بکمک تابع swap جابهجا مینماید.\n\n#include <iostream.h>\n\n#include <conio.h>\n\nvoid swap(float *, float *);\n\nint main( )\n\n{\n\nfloat a,b,*ptb,*pta;\n\ncin >> a >> b;\n\npta=&a;\n\nptb=&b;\n\nswap(pta,ptb); ///////swap(a,b);\n\ncout << a << endl << b << endl ;\n\nreturn 0;\n\n}\n\nvoid swap(float *px , float *py)\n\n{\n\nfloat t;\n\nt = *px;\n\n*px = *py;\n\n*py = t ;\n\nreturn;\n\n}\n\nرشتهها و توابع مربوطه\n\nرشتهها در C++ ، آرایهای از کرکترها میباشند که با کرکتر ختم میشوند.\n\nرشته و اشاره گر\n\nهر رشته از طریق اشارهگری به اولین کرکتر آن در دسترس قرار میگیرد. آدرس یک رشته، آدرس کرکتر اول آن میباشد. به رشتهها میتوان مقدار اولیه تخصیص داد.\n\nبرنامه ذیل پنج اسم را بصورت 5 رشته در نظر گرفته آنها را بترتیب حروف الفباء مرتب نموده نمایش میدهد.\n\n#include <iostream.h>\n\n#include<string.h>\n\nvoid sort(char *[ ]);\n\nint main( )\n\n{\n\nchar *name[5] = {sara, afsaneh, babak, saman, naser };\n\nsort(name);// display sorted strings\n\nfor(int i=0; i<5; ++i)\n\ncout << name[ i ] << endl;\n\nreturn 0; }\n\nsort(char *name[ ])\n\n{\n\nchar *t;\n\nfor(int i=0; i<4; ++i)\n\nfor(int j=i+1; j<5; ++j)\n\nif(strcmpi(name[ i ], name[ j ]> 0)\n\n{// interchange the two strings\n\nt= name[ i ];\n\nname[ j ] = name[ i ];\n\nname[ i ] = t ;}\n\nreturn ; }\n\nتابع strcmpi(s1, s2)\n\nتابع ) strcmp(s1, s2\n\nتابع ) strncmp(s1, s2,n\n\nتابع (strcat(s1, s2\n\nتابع (strncat(s1, s2,n\n\nتابع (strlen(s\n\nتابع (strlen(s\n\nتابع strcpy(s1,s2)\n\nتابع (strncpy(s1, s2,n\n\nمثال :\n\n#include <iostream.h>\n\n#include <string.h>\n\n#include <conio.h>\n\nint main( )\n\n{\n\nchar *s1= happy birthday;\n\nchar *s2= happy holidays;\n\nclrscr( );\n\ncout << strcmp(s1, s2) << endl;\n\ncout << strncmp(s1, s2, 7) << endl ;\n\nreturn 0;\n\n}\n\nمثال :\n\n#include <iostream.h>\n\n#include <string.h>\n\n#include <conio.h>\n\nint main( )\n\n{\n\nchar *s = sara;\n\nclrscr( );\n\ncout << strlen(s);\n\nreturn 0; }\n\nتابع زیر معادل تابع کتابخانه strcmp می باشد.\n\nint nikstrcmp(char s[] , char t[] )\n\n{\n\nint i=0;\n\nwhile (s[i]==t[i] )\n\nif ( s[i++]=‘’ )\n\nreturn 0;\n\nreturn (s[i]-t[i]);\n\n}\n\nفصل هشتم\n\nبرنامه نویس شی گرا\n\nفهرست مطالب فصل هشتم\n\nتعریف شی گرایی\n\nچند ریختی (polymorphism)\n\nخاصیت ارث بری\n\nپشته (stack)\n\nایجاد شی\n\nارث بری\n\nسازنده ها و نابود کننده ها\n\nتوابع دوست\n\nکلاس های دوست\n\nتوابع سازنده پارامتر دار\n\nتوابع سازنده یک پارامتری\n\nعضوهای static\n\nکلاسهای تودرتو\n\nکلاس های محلی\n\nاستفاده از object ها بعنوان پارامترهای تابع\n\nبرگشت اشیاء\n\nانتساب اشیاء\n\nآرایه اشیاء\n\nاشاره گر به اشیاء\n\nاشاره گر this\n\nتوابع مجازی و پلی مرفیسم\n\nتعریف شی گرایی\n\nتعریف شی گرایی\n\nنکته مهم :\n\nمحصورسازی (Encapsulation )\n\nمحصورسازی مکانیزمی است که code و data را بهم وصل نموده و هر دوی آنها را از استفادههای غیرمجاز مصون نگه میدارد. شی یک مؤلفه منطقی است که data و code را محصور نموده و code باعث دستکاری و پردازش data میشود.\n\npolymorphism (چند ریختی)\n\ninheritance (ارث بری)\n\nپشته (stack)\n\nپشته ساختاری است که دارای خاصیت last in first out میباشد. پشته فضای پیوسته در حافظه اشغال مینماید. عملیاتی کــه روی پشته انجام میشوند عبارتند از :\n\nالف: push، که باعث میشود یک عنصر وارد پشته شده.\n\nب: pop ، که باعث میشود یک عنصر از پشته خارج گردد.\n\nایجاد شی (object)\n\nمثال :\n\n#define SIZE 100\n\n// this creates the class stack.\n\nclass stack {\n\nprivate :\n\n[int stck [SIZE;\n\nint tos;\n\npublic:\n\nvoid init( );\n\n(void push(int i;\n\nint pop( );\n\n};\n\nنکته :\n\nفقط توابع عضو میتوانند به متغیرهای عضو از نوع private دسترسی داشته باشند. بایستی توجه داشت که اگر نوع عضوی مشخص نگردد آن عضو به صورت اتوماتیک private می باشد.\n\nنحوه تعریف تابع عضو یک کلاس\n\nvoid stack : : push(int i)\n\n{\n\nif(tos = = SIZE ) {\n\ncout << stack is full.;\n\nreturn;\n\n}\n\nstck[tos]= i ;\n\ntos ++ ;\n\n}\n\nبرنامه کامل stack :\n\n#include <iostream.h>\n\n#define SIZE 100\n\n// this creates the class stack.\n\nclass stack {\n\nint stck[SIZE];\n\nint tos;\n\npublic:\n\nvoid init(int i);\n\nint pop( );\n\n( void push(int i;\n\n};\n\nvoid stack : : init( )\n\n{\n\ntos = 0 ;\n\n}\n\nvoid stack : : push(int i)\n\n{\n\n(if(tos = = size {\n\ncout << stack is full. ;\n\nreturn ;\n\n}\n\nstck[tos] = i ;\n\ntos ++ ;\n\n}\n\nارث بری\n\nمثال :\n\nدر روبرو object ای بنام ساختمان یا building تعریف گردیده است. هر ساختمان دارای تعدادی اطاق، تعدادی طبقه و سطح زیر بنا نیز میباشد. از طرف دیگرتوابعی که برای شی تعریف شده :\n\nنکته :\n\nدر مثال قبل building را base class و house را derived class می نامند . شی house تمام اعضای building را دارا است بعلاوه اینکه دارای متغیرهای عضوی اضافی bedrooms ، baths و همچنین توابع عضوی set_baths()، set_bebrooms()، get_baths()، get_bedrooms()نیز میباشد. .\n\nسازندهها و نابودکنندهها (constructors and destructors)\n\nInitialization یا مقدار اولیه دادن بصورت اتوماتیک از طریق تابعی انجام میشود بنام تابع constructor یا تابع سازنده. تابع سازنده تابع مخصوصی است که عضوی از کلاس بوده و همنام با کلاس میباشد.\n\nسازندهها و نابودکنندهها (constructors and destructors)\n\nتابع نابود کننده یا destructor ، عکس عمل تابع سازنده را انجام میدهد. وقتی که شیای از بین میرود بصورت اتوماتیک تابع نابود کننده آن فراخوانی میگردد.\n\nتوابع دوست (friend functions)\n\nبا استفاده از کلمة friend این امکان وجود دارد که به تابعی که عضو کلاس نمیباشد اجازه دسترسی به متغیرهای private کلاس را داد. برای آنکه تابعی را دوست اعلان نمائیم از کلمه friend قبل از تعریف تابع استفاده مینمائیم.\n\nمثال :\n\n#include <iostream.h>\n\n#include <conio.h>\n\nclass myclass {\n\nint a,b;\n\npublic :\n\nfriend int sum(myclass x);\n\nvoid set_ab(int i, int j);\n\n};\n\nvoid myclass :: set_ab(int i, int j)\n\n{\n\na=i;\n\nb=j;\n\n}\n\n//sum is not a member function\n\nint sum(myclass x)\n\n{\n\nreturn s.a + x.b;\n\n}\n\nint main( )\n\n{myclass n;\n\nclrscr( );\n\nn. set_ab(5,8);\n\ncout << sum(n);\n\nreturn 0 ; }\n\nنکته :\n\nکلاسهای دوست (friend classes)\n\nاین امکان وجود دارد که یک کلاس دوست کلاس دیگری باشد . در چنین وضعیتی تابع دوست به کلیه اسامی private تعریف شده در کلاس دیگر دسترسی دارد.\n\nمثال :\n\n#include <iostream.h>\n\nclass coins {\n\nenum units {penny, nickel, dime, quarter, half_ dollar};\n\nfriend class amount;\n\n};\n\nclass amount {\n\ncoins :: units money;\n\npublic:\n\nvoid setm( );\n\nint getm( );\n\n} ob;\n\nvoid amount :: setm( )\n\n{\n\nmoney = coins :: dime;\n\n}\n\nint amount :: getm( )\n\n{\n\nreturn money;\n\n}\n\nint main( )\n\n{\n\nob.setm( );\n\ncout << ob.getm( );\n\nreturn 0 ;\n\n}\n\nتوابع سازنده پارامتردار\n\nامکان انتقال آرگومانها به توابع سازنده وجود دارد. معمولاً از این آرگومانها برای initialize نمودن شی در زمان ایجاد آن استفاده میگردد.\n\nمثال :\n\n#include <iostream.h>\n\n#include <conio.h>\n\nclass myclass {\n\nint x, y;\n\npublic :\n\nmyclass(int i, int j) {x = i; y=j; }\n\nvoid show( ) {cout << x << endl << y; }\n\n};\n\nint main( )\n\n{\n\nmyclass obj( 3 , 5);\n\nclrscr( );\n\nobj.show( );\n\nreturn 0;\n\n}\n\nتوابع سازنده یک پارامتری\n\nعضوهای static\n\nمثال :\n\n#include <iostream.h>\n\nclass shared{\n\nstatic int a;\n\nint b;\n\npublic :\n\nvoid set(int i, int j) {a=i; b=j; }\n\nvoid show( );\n\n};\n\nint shared :: a ; // define a\n\nvoid shared :: show( )\n\n{\n\ncout <<static a: << a << endl;\n\ncout << nonstatic b: << b << endl;\n\n}\n\nint main( )\n\n{\n\nshared x,y;\n\nx.set(1,1); // set a to 1\n\nx.show( );\n\ny.set(4,4); // change a to 4\n\ny.show( );\n\nx.show( );\n\nreturn 0;\n\n}\n\nnested classes (کلاسهای تودرتو)\n\nlocal classes (کلاسهای محلی)\n\nدر مورد کلاسهای محلی رعایت نکات زیر ضروری است :\n\nتمام توابع عضو بایستی در درون کلاس تعریف گردند.\n\nاز متغیرهای محلی، تابعی که کلاس در آن تعریف شده نمیتواند استفاده نماید.\n\nاز متغیرهای عضوی static نمیتوان استفاده نمود.\n\nاستفاده از object ها بعنوان پارامترهای توابع\n\nاز object ها میتوان بعنوان پارامترهای توابع استفاده نمود و مکانیزم انتقال آرگومانها و پارامترها بصورت call by value میباشد.\n\nبرگشت اشیاء (returning objects)\n\nمثال :\n\n#include <iostream.h>\n\nclass myclass {\n\nint i ;\n\npublic :\n\nvoid set_ i(int n) { i=n;}\n\nint get_i( ) {return i;}\n\n};\n\nmyclass funct( ); // return an object\n\nint main( )\n\n{\n\nmyclass ob;\n\nob=funct( );\n\ncout << ob.get_i( ) << endl;\n\nreturn 0;\n\n}\n\nmyclass funct( )\n\n{\n\nmyclass x ;\n\n(x.set_i(1;\n\nreturn x;\n\n}\n\nانتساب اشیاء (object assignment)\n\nمثال :\n\n#include <iostream.h>\n\n#include <conio.h>\n\nclass myclass{\n\nint i;\n\npublic:\n\nvoid set_i(int n) {i=n;}\n\nint get_i( ) {return i;}\n\n};\n\nint main( )\n\n{\n\nmyclass ob1, ob2;\n\nobl.set_i(126);\n\nob2= ob1; // assign data from ob1 to ob2\n\nclrscr( );\n\ncout << ob2.get_i( );\n\nretrun 0 ;\n\n}\n\nآرایه اشیاء (array of objects)\n\nمثال :\n\n#include <iostream.h>\n\n#include <conio.h>\n\nclass myclass{\n\nint i;\n\npublic:\n\nvoid set_i(int j) {i=j;}\n\nint get_i( ) {return i;}\n\n};\n\nint main( )\n\n{\n\nclrscr( );\n\nmyclass ob[3];\n\nint i;\n\nfor(i=0; i<3; i++) ob[ i ].set_i(i+1);\n\nfor(i=0; i<3; i++)\n\ncout << ob[ i ].get_i( ) << endl;\n\nreturn 0;\n\n}\n\nاشارهگر به اشیاء (pointers to objects )\n\nمثال :\n\n#include <iostream.h>\n\n#include <conio.h>\n\nclass myclass{\n\nint i ;\n\npublic:\n\nmyclass( ) {i=0;}\n\nmyclass(int j) {i=j;}\n\nint get_i( ) {return i;}\n\n};\n\nint main( )\n\n{\n\nmyclass ob[3]= {1, 2, 3};\n\nmyclass *p;\n\nint i;\n\np=ob; // get start of array\n\nfor(i=0; i<3; i++)\n\n{\n\ncout << p get_i( ) << endl;\n\np++; // point to next object\n\n}\n\nreturn 0;\n\n}\n\nاشارهگر this (this pointer)\n\nمثال :\n\n#include <iostream.h>\n\nclass pwr {\n\ndouble b;\n\nint e;\n\ndouble val;\n\npublic:\n\npwr(double base, int exp);\n\ndouble get_pwr( ) {return val;}\n\n};\n\npwr :: pwr(double base, int exp)\n\n{\n\nthis b=base;\n\nthis e=exp;\n\nthis val =1;\n\nif(exp = = 0) return;\n\nfor(; exp > 0 ; exp )\n\nthis val = this val *this b;\n\n}\n\nint main( )\n\n{pwr x(4.0, 2) , y(2.5, 1), z(5.7,0);\n\ncout << x.get_pwr( ) << ;\n\ncout << y.get_pwr( ) << ;\n\ncout << z.get_pwr( ) << n ;\n\nreturn 0; }\n\nتوابع مجازی و پلی مرفیسم (virtual functions)\n\nمثال :\n\n#include <iostream.h>\n\nclass base {\n\npublic :\n\nvirtual void vfunc( ){cout << this is base s vfunc( ) n ;}\n\n};\n\nclass derived1 : public base {\n\npublic:\n\nvoid vfunc( ) {cout << this is derived1 s vfunc( ) " << endl ; }\n\n};\n\nclass derived2: public derived1 {\n\npublic:\n\n/*vfunc( ) not overridden by derived2.In this case, since derived2 is derived\n\nfrom derived1, derived1 s vfunc( ) is used */ } ;\n\nint main( )\n\n{\n\nbase *p, b;\n\nderived1 d1;\n\nderived2 d2;\n\n//point to base\n\np = &b;\n\np vfunc( ); // access base's vfunc\n\n// point to derived1\n\np=&d1;\n\np vfunc( ); //access derived1's vfunc( )\n\n//point to derived2\n\np = &d2;\n\np vfunc( ); // use derived1 s vfunc( )\n\nreturn 0 ; }\n\n \n\n \n\n30 تا 70 درصد پروژه | پاورپوینت | سمینار | طرح های کارآفرینی و توجیهی | پایان-نامه | پی دی اف مقاله ( کتاب ) | نقشه | پلان طراحی | های آماده به صورت رایگان میباشد ( word | pdf | docx | doc )