یادگیری ++C به زبان ساده: از اولین خط کد تا ساخت پروژه‌های پیشرفته | جلسه چهارم :دستور زبان پایه‌ای C++
C++ Programming Language

یادگیری ++C به زبان ساده: از اولین خط کد تا ساخت پروژه‌های پیشرفته | جلسه چهارم :دستور زبان پایه‌ای C++

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

  • شیء − اشیاء دارای حالت‌ها و رفتارها هستند. مثال: یک سگ حالت‌هایی مانند (رنگ، نام، نژاد) و همچنین رفتارهایی مانند (جنباندن دم، پارس کردن، غذا خوردن) دارد. یک شیء نمونه‌ای از یک کلاس است.
  • کلاس − کلاس را می‌توان به‌عنوان یک قالب یا نقشه راه تعریف کرد که رفتارها یا حالت‌هایی که اشیاء از نوع آن پشتیبانی می‌کنند را توصیف می‌کند.
  • متدها − متد در اصل یک رفتار است. یک کلاس می‌تواند شامل چندین متد باشد. در متدها منطق برنامه نوشته می‌شود، داده‌ها تغییر داده می‌شوند و تمام عملیات اجرا می‌شود.
  • متغیرهای نمونه − هر شیء دارای مجموعه‌ی منحصر به فردی از متغیرهای نمونه است. حالت یک شیء با مقادیری که به این متغیرهای نمونه اختصاص داده می‌شود، شکل می‌گیرد.

ساختار برنامه‌ی C++

ساختار پایه یک برنامه‌ی C++ شامل بخش‌های زیر است:

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

برای یادگیری بیشتر بخوانید: برنامه‌ی سلام جهان در C++.

مثال

بیایید یک کد ساده ببینیم که کلمات Hello World را چاپ می‌کند.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
// main() is where program execution begins.
int main() {
cout << "Hello World"; // prints Hello World
return 0;
}
#include <iostream> using namespace std; // main() is where program execution begins. int main() { cout << "Hello World"; // prints Hello World return 0; }
#include <iostream>
using namespace std;

// main() is where program execution begins.
int main() {
   cout << "Hello World"; // prints Hello World
   return 0;
}

توضیح مثال بیایید به قسمت‌های مختلف برنامه‌ی بالا نگاه کنیم

  • زبان C++ چندین فایل هدر تعریف کرده است که شامل اطلاعاتی هستند که برای برنامه شما ضروری یا مفید هستند. برای این برنامه، فایل هدر <iostream> لازم است.
  • خط using namespace std; به کامپایلر می‌گوید که فضای نام std را استفاده کند. فضای نام‌ها (namespace) اضافه‌ای نسبتاً جدید در C++ هستند.
  • خط بعدی '// main() is where program execution begins.' یک توضیح تک‌خطی است که در C++ با // شروع می‌شود و تا پایان همان خط ادامه دارد.
  • خط int main() تابع اصلی است که اجرای برنامه از آنجا شروع می‌شود.
  • خط بعدی cout << "Hello World"; باعث می‌شود پیام "Hello World" روی صفحه نمایش داده شود.
  • خط return 0; تابع main را خاتمه می‌دهد و مقدار ۰ را به فرآیند فراخواننده بازمی‌گرداند.

کامپایل و اجرای برنامه C++ بیایید ببینیم چگونه فایل را ذخیره کنیم، برنامه را کامپایل و اجرا کنیم. لطفاً مراحل زیر را دنبال کنید :

۱. یک ویرایشگر متن باز کنید و کد را مانند بالا وارد کنید.

۲. فایل را با نام hello.cpp ذخیره کنید.

۳. پنجره خط فرمان (Command Prompt) را باز کنید و به پوشه‌ای که فایل را ذخیره کرده‌اید بروید.

۴. تایپ کنید g++ hello.cpp و اینتر بزنید تا کد شما کامپایل شود. اگر کد شما خطایی نداشته باشد، خط فرمان به خط بعد می‌رود و فایل اجرایی a.out ساخته می‌شود.

۵. حالا تایپ کنید ./a.out تا برنامه اجرا شود.

شما خواهید دید که عبارت Hello World روی صفحه چاپ می‌شود.

$ g++ hello.cpp
$ ./a.out
Hello World

مطمئن شوید که g++ در مسیر (PATH) شما قرار دارد و در همان پوشه‌ای که فایل hello.cpp وجود دارد، در حال اجرا هستید.

شما همچنین می‌توانید برنامه‌های C/C++ را با استفاده از فایل makefile کامپایل کنید. برای اطلاعات بیشتر می‌توانید آموزش «Makefile» را بررسی کنید.

نقطه‌ویرگول و بلوک‌ها در C++ در C++ نقطه‌ویرگول پایان‌دهنده یک دستور است. یعنی هر دستور باید با نقطه‌ویرگول تمام شود. این علامت پایان یک واحد منطقی را مشخص می‌کند.

برای مثال، سه دستور متفاوت به شکل زیر هستند −

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = y;
y = y + 1;
add(x, y);
x = y; y = y + 1; add(x, y);
x = y;
y = y + 1;
add(x, y);

یک بلوک مجموعه‌ای از دستورات مرتبط منطقی است که توسط آکولادهای باز { و بسته } احاطه شده‌اند. برای مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
cout << "Hello World"; // prints Hello World
return 0;
}
{ cout << "Hello World"; // prints Hello World return 0; }
{
   cout << "Hello World"; // prints Hello World
   return 0;
}

در C++ پایان خط به‌عنوان پایان‌دهنده دستور شناخته نمی‌شود. به همین دلیل، مهم نیست که یک دستور را کجا در یک خط قرار دهید. برای مثال −

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = y;
y = y + 1;
add(x, y);
x = y; y = y + 1; add(x, y);
x = y;
y = y + 1;
add(x, y);

معادل است با

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = y; y = y + 1; add(x, y);
x = y; y = y + 1; add(x, y);
x = y; y = y + 1; add(x, y);

شناسه‌های C++

شناسه در C++ نامی است که برای شناسایی یک متغیر، تابع، کلاس، ماژول یا هر آیتم تعریف شده توسط کاربر استفاده می‌شود. یک شناسه با یک حرف بزرگ A تا Z یا حرف کوچک a تا z یا یک زیرخط (_) شروع می‌شود و می‌تواند به دنبال آن صفر یا بیشتر حروف، زیرخط‌ها و اعداد (0 تا 9) بیاید.

C++ اجازه استفاده از کاراکترهای علامت‌گذاری مانند @، $ و % را در شناسه‌ها نمی‌دهد. زبان برنامه‌نویسی C++ حساس به حروف بزرگ و کوچک است، یعنی شناسه‌هایی مانندManpower و manpower دو شناسه متفاوت محسوب می‌شوند.

در ادامه چند مثال از شناسه‌های مجاز آورده شده است

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

کلمات کلیدی C++

لیست زیر کلمات رزرو شده در زبان C++ را نشان می‌دهد. این کلمات رزرو شده نمی‌توانند به‌عنوان نام ثابت، متغیر یا هیچ شناسه‌ی دیگری استفاده شوند.

کلمات کلیدی C++

تری‌گراف‌ها (Trigraphs)

چند کاراکتر در C++ یک نمایش جایگزین دارند که به آن دنباله‌ی تری‌گراف (trigraph) گفته می‌شود. تری‌گراف یک دنباله‌ی سه‌کاراکتری است که نمایانگر یک کاراکتر منفرد است و همیشه با دو علامت سؤال شروع می‌شود.

تری‌گراف‌ها در هر جایی که ظاهر شوند، از جمله در رشته‌ها (string literals)، کاراکترها (character literals)، کامنت‌ها و دستورات پیش‌پردازنده گسترش داده می‌شوند.در ادامه، رایج‌ترین دنباله‌های تری‌گراف آورده شده‌اند.

تری‌گراف‌ها (Trigraphs)

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

فاصله‌های سفید در C++

خطی که فقط شامل فاصله‌های سفید باشد، احتمالاً همراه با یک توضیح (کامنت)، به عنوان یک خط خالی شناخته می‌شود و کامپایلر C++ آن را کاملاً نادیده می‌گیرد.

فاصله سفید (Whitespace) در C++ به فاصله‌ها، تب‌ها، کاراکترهای پایان خط و کامنت‌ها گفته می‌شود. فاصله سفید بخش‌های مختلف یک دستور را از هم جدا می‌کند و به کامپایلر کمک می‌کند تا تشخیص دهد یک بخش از دستور، مانند int، کجا تمام می‌شود و بخش بعدی کجا شروع می‌شود.

دستور ۱

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int age;
int age;
int age;

در دستور بالا باید حداقل یک کاراکتر فاصله سفید (معمولاً یک فاصله) بین int و age وجود داشته باشد تا کامپایلر بتواند آنها را از هم تشخیص دهد.

دستور ۲

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fruit = apples + oranges; // Get the total fruit
fruit = apples + oranges; // Get the total fruit
fruit = apples + oranges;   // Get the total fruit

در دستور ۲ بالا، وجود فاصله سفید بین fruit و = یا بین = و apples لازم نیست، اگرچه شما آزاد هستید برای خوانایی بهتر، مقداری فاصله قرار دهید.

ساختار برنامه C++ با رویکرد شیءگرا C++ علاوه بر رویکرد برنامه‌نویسی رویه‌ای، از برنامه‌نویسی شیءگرا نیز پشتیبانی می‌کند.

مثال این مثال یک برنامه C++ را بر اساس رویکرد شیءگرا نشان می‌دهد.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
class Numbers {
private:
int a;
int b;
public:
// Function to set values
void setValues(int x, int y) {
a = x;
b = y;
}
// Function to add these numbers
double addition() { return a + b; }
// Function to display values
void display() { cout << "a: " << a << ", b: " << b << endl; }
};
int main() {
// Create an object of Numbers class
Numbers num;
// Set values
num.setValues(10, 20);
// Display the values
num.display();
// Find the addition
int sum = num.addition();
cout << "Sum of numbers: " << sum << endl;
return 0;
}
#include <iostream> using namespace std; class Numbers { private: int a; int b; public: // Function to set values void setValues(int x, int y) { a = x; b = y; } // Function to add these numbers double addition() { return a + b; } // Function to display values void display() { cout << "a: " << a << ", b: " << b << endl; } }; int main() { // Create an object of Numbers class Numbers num; // Set values num.setValues(10, 20); // Display the values num.display(); // Find the addition int sum = num.addition(); cout << "Sum of numbers: " << sum << endl; return 0; }
#include <iostream>
using namespace std;

class Numbers {
 private:
  int a;
  int b;

 public:
  // Function to set values
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // Function to add these numbers
  double addition() { return a + b; }

  // Function to display values
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

int main() {
  // Create an object of Numbers class
  Numbers num;

  // Set values
  num.setValues(10, 20);

  // Display the values
  num.display();

  // Find the addition
  int sum = num.addition();
  cout << "Sum of numbers: " << sum << endl;

  return 0;
}

قسمت‌های ساختار برنامه C++ با رویکرد شیءگرا

قسمت‌های مختلف ساختار برنامه C++ با رویکرد شیءگرا به شرح زیر است:

  1. اعلان کلاس (Class Declaration) کلاس یک قالب برای یک شیء است، یا می‌توان گفت کلاس کارخانه‌ای است برای تولید یک شیء. کلاس نوعی داده‌ی سفارشی است که در آن ساختاری برای یک شیء ساخته می‌شود.

اعلان کلاس شامل بخش‌های زیر است:

  • تغییردهنده‌های دسترسی (Access Modifiers): زبان C++ سه نوع تغییردهنده دسترسی را پشتیبانی می‌کند: private (خصوصی)، public (عمومی) و protected (محافظت‌شده). دسترسی به اعضای داده و توابع عضو توسط این تغییردهنده‌ها تعریف می‌شود.
  • اعضای داده و توابع عضو: متغیرهایی که در اعلان کلاس استفاده می‌شوند به عنوان اعضای داده شناخته می‌شوند و توابع عضوی، توابعی هستند که روی اعضای داده کار می‌کنند.

مثال

براساس مثال بالا، بخش زیر از اعلان یک کلاس

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Numbers {
private:
int a;
int b;
public:
// Function to set values
void setValues(int x, int y) {
a = x;
b = y;
}
// Function to add these numbers
double addition() { return a + b; }
// Function to display values
void display() { cout << "a: " << a << ", b: " << b << endl; }
};
class Numbers { private: int a; int b; public: // Function to set values void setValues(int x, int y) { a = x; b = y; } // Function to add these numbers double addition() { return a + b; } // Function to display values void display() { cout << "a: " << a << ", b: " << b << endl; } };
class Numbers {
 private:
  int a;
  int b;

 public:
  // Function to set values
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // Function to add these numbers
  double addition() { return a + b; }

  // Function to display values
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

اعضای داده زیر تحت تغییردهنده دسترسی خصوصی (private) تعریف شده‌اند، یعنی این اعضای داده فقط توسط توابع عضو درون همان کلاس قابل استفاده هستند .

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
private:
int a;
int b;
private: int a; int b;
private:
  int a;
  int b;

توابع عضو زیر در کلاس استفاده شده‌اند

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
void setValues(int x, int y);
double addition();
void display();
void setValues(int x, int y); double addition(); void display();
void setValues(int x, int y);
double addition();
void display();

۲. ایجاد شیء

در مثال بالا، دستور زیر برای ایجاد شیء استفاده شده است

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Numbers num;
Numbers num;
Numbers num;
PHP از دستورات echo و print برای نمایش خروجی در مرورگر یا کنسول PHP استفاده می‌کند. هر دو ساختارهای زبان...
شناسه‌ها در ++C نام‌های منحصربه‌فردی هستند که برای شناسایی متغیرها، توابع، کلاس‌ها، آرایه‌ها و سایر آیتم‌های تعریف‌شده توسط کاربر در...
++C
کلمات کلیدی در C++ کلمات رزرو شده‌ای هستند که برای کامپایلر معنا و مفهوم خاصی دارند. این کلمات نمی‌توانند برای...
++C
ثابت‌ها به مقادیر ثابتی اشاره دارند که برنامه نباید آن‌ها را تغییر دهد و به آن‌ها لیترال (Literal) گفته می‌شود. ثابت‌ها می‌توانند...
C++ Programming Language
توکن‌های C++ کوچک‌ترین واحدهای مستقل در یک برنامه هستند که توسط کامپایلر شناسایی و پردازش می‌شوند. این توکن‌ها با هم...
C++ Programming Language
حذف فضای نام (Namespace) شما می‌توانید به‌صورت صریح از پیشوند std:: برای اشیاء و توابع کتابخانه استاندارد استفاده کنید، به‌جای اینکه از...
C++ Programming Language
1

پشتیبانی واتساپ هوش فعال