آشنایی با توابع c++
توابع c++ را بشناسیم
زبان برنامه نویسی c++ یک زبان برنامه نویسی قدرتمند است که می توان گفت در بسیاری از موارد میتوان از آن بهره برد. لذا همه منظوره و شی گرا بوده و از بسیاری برنامههای کاربردی پشتیبانی میکند. با توجه به این که زبانهای برنامهنویسی دارای رده بندی هستند، میتوان گفت که زبان c++ یکی از زبانهای برنامه نویسی است که در تمام ردهها جای میگیرد و لذا پایهای برای نوشتن بسیاری از زبانهای برنامهنویسی است. میتوان گفت که زبان c++ یک زبان بالاتر از سطح میانی است اما قابلیتهای زبانهای برنامه نویسی سطح بالا و پایین را تواما دارا می باشد. در ادامه با توابع c++ آشنا خواهید شد.
زبان برنامه نویسی c++ توسعه یافته زبان برنامه نویسی c است که هر دو از مشتاقان فراوانی دارند و آنچه باعث ارتقاء زبان c++ شده است، دستهبندی یا کلاسبندی، همچنین وراثت و انواع توابع c++ آن است.
در پس تولید زبان c++ اندیشهای بزرگ نهفته است که به فهم زبان برنامه نویسی c++ کمک شایان مینماید. طراح c++ به دنبال تولید زبان برنامهنویسی عمومی بوده که ساخت یافته باشد و به مانند زبان c قابلیتهای بالایی داشته باشد. هر چند که شاید نیازمند کدنویسی زیادی در این برنامه هستیم اما محیط برنامهنویسی آن بسیار پیچیده نیست.
تفاوت زبان برنامه نویسی c و c++
تفاوت زبان برنامه نویسی c و c++ در آن است که زبان برنامه نویسی c وابسته به سیستم عامل خاصی نیست و یک زبان برنامه نویسی پیشرفته است. زبان برنامه نویسی c یک زبان قدرتمند برای پردازش و تولید پردازشگرها و تولید سیستم های جدید میباشد. اما زبان برنامه نویسی c++ به عنوان یک برنامه رایانهای پیشرفته است و به مانند برنامه c زیرساختی عمل نمینماید. در این قسمت بیشتر در خصوص وراثت و ارث بری در c++ سخن خواهیم گفت و کتابخانه گسترده این زبان برنامه نویسی با یکدیگر سخن خواهیم گفت.
وراثت در c++
همانطور که از نام این قسمت پیداست به دنبال آن هستیم بررسی نماییم که آیا مشخصهای که در یک کلاس وجود دارد، قابل دسترسی توسط کلاسهای دیگر است یا خیر؟ ارث بری در c++ عموما 4 نوع میباشد.
اولین ارث بری به این نحو شکل میگیرد که یک کلاس تعریف شده در c++ از کلاس دیگری ارث می برد و فقط یک کلاس از یک کلاس دیگر ارث میبرد. الگوی نوشتاری ارث بری به شکل زیر است:
class subclass_name : access_mode base_class
{
//body of subclass
};
دومین ارث بری مربوط به حالتی است که یک کلاس از چند کلاس ارث می برد. به مدل دستور نویسی این ارث بری توجه نمایید.
class subclass_name : access_mode base_class1, access_mode base_class2, ....
{
//body of subclass
};
نوع سوم ارث بری، ارث بری سلسله مراتبی است که هر کلاس از کلاس قبل خود ارث می برد. به تصویر زیر دقت نمایید.
ارث بری در c++
در نهایت باید گفت که ارث بری ترکیبی شامل تمام حالات فوق نیز به عنوان چهارمین ارث بری معرفی شده است.
کتابخانه زبان c++
با توجه به این که برنامه c++ در دنباله برنامه c تولید شده است، لذا شامل کتابخانه پیشرفته و قدرتمند برنامه c می باشد و در کنار آن بخشهای دیگری نیز وجود دارد. توابع در کتابخانه c از قبل تعبیه شده و نوشته شدهاند و نیاز است برای استفاده از آنها، فراخوانی شوند.
از آنجایی که برنامه نویسی c++ یک برنامه شی گرا بوده و در حال حاضر باید جهت طراحیها و برنامه نویسیهای گسترده از این قابلیت بهره برد، زبان c این قابلیت را ندارد، لذا کتابخانه زبان c++ نیز جهت ایجاد این چنین ساختاری ایجاد و طراحی شده است.
توابع c++ کدامند؟
در حالت کلی دو نوع تابع وجود در برنامه c++ دارد. یک نوع از توابع از قبل به صورت برنامه نویسی شده تهیه شده و قابل دسترس هستند و باید جهت استفاده فراخوانی شوند و توابع دوم، محصول عملکرد کاربر است. توابع دسته اول را توابع کتابخانه ای و توابع قسمت دوم را توابع نوشته شده نامند. اولین و مهمترین تابع از توابع c++ تابع اصلی یا همان تابع main() که اجرای برنامه منوط به وجود آن بوده و در سرخطهای برنامه نوشته میشود.
جهت آشنایی با توابع c++ به مثال زیر از مثال توابع در C++ توجه نمایید:
// Function definition
int add(int a,int b)
{
int add;
add = a + b;
return add;
}
در اینجا یک تابع فراخوانی شده تا جمع را ایجاد نماید. دستور اجرایی هر تابع باید در بین {} واقع شده باشد. هر تابع شامل آرگومان است که این قسمت همان ورودی تابع است. یک تابع می تواند چند ورودی یا آرگومان داشته باشد. به عنوان مثال int add int a,int b دارای دو ورودی است. برنامه فوق که بخشی از یک برنامه کلی است به محاسبه مجموع دو عدد صحیح اشاره دارد.
باید دقت نمود که ارکان یک تابع عبارتند از تعریف تابع، اعلان تابع و فراخوانی تابع که با استفاده از هر یک میتوان یک برنامه اصولی را طراحی نمود. در این برنامهنویسی نباید هیچ تابعی در تابع دیگر تعریف شود.
توابع C++ بسیار متعدد هستند و با کار تجربی میتوان به یادگیری آنها تسلط یافت. اما در حالت کلی، توابع c++ به چهار صورت هستند. بسته به این که آیا مقدار اولیه یا مقدار بازگشتی برای آنها تعریف شده یا نه و این که آرگومان دارند یا خیر این چهار حالت تولید می شوند. مثلا تابع int add در مثال بالا دارای دو آرگومان است.
توابع ماشینی
در همین جا میتوان اشاره نمود که لزومی ندارد تا ورودی یک تابع حتما عدد باشد. یک تابع ماشینی است که ورودی را دریافت مینماید و یک خروجی مطابق با کاری که ماشین انجام میدهد به عنوان نتیجه خارج میسازد. مثلا میتوان از ارسال شی به تابع بهره برد و خروجی دریافت کرد. به مثال زیر توجه نمایید.
using namespace std;
class Complex
{
private:
int real;
int imag;
public:
Complex(): real(0), imag(0) { }
void readData()
{
cout << "Enter real and imaginary number respectively:"<<endl;
cin >> real >> imag;
}
void addComplexNumbers(Complex comp1, Complex comp2)
{
// real represents the real data of object c3 because this function is called using code c3.add(c1,c2);
real=comp1.real+comp2.real;
// imag represents the imag data of object c3 because this function is called using code c3.add(c1,c2);
imag=comp1.imag+comp2.imag;
}
void displaySum()
{
cout << "Sum = " << real<< "+" << imag << "i";
}
};
int main()
{
Complex c1,c2,c3;
c1.readData();
c2.readData();
c3.addComplexNumbers(c1, c2);
c3.displaySum();
return 0;
}
خروجی این برنامه نمایش یک عدد مختلط است. امیدواریم مطلب ما در مورد توابع C++ مفید واقع شده باشد.
سایت خیلی خوبی دارید
امیدوارم موفق باشید