Roxo
2.73K subscribers
1.33K photos
44 videos
2 files
370 links
🎓 آکادمی آنلاین روکسو

روکسو یک وبسایت آموزش آنلاین است که در آن هم میتوانید مهارت مورد نیازتان را یاد بگیرید و هم تخصص خود را به دیگران یاد بدهید.

آدرس وبسایت:

www.roxo.ir

ارتباط با ما از طریق تلگرام:

@roxo24

آدرس کانال تلگرام:
Download Telegram
سی پلاس پلاس به ما این اجازه را می‌دهد که حافظه را به یک متغیر یا یک آرایه در زمان اجرا (run-time) اختصاص دهیم. این را به عنوان اختصاص دادن حافظه به طور پویا (‌dynamic) می‌‌شناسیم.

در دیگر زبان‌های برنامه‌نویسی مانند جاوا و پایتون، کامپایلر حافظه‌های اختصاص داده شده به متغیر‌ها را به طور خودکار مدیریت می‌کند. اما این موضوع در ++C صِدق نمی‌کند. در ++C ما باید به طور دستی حافظه‌ی اختصاص داده شده به صورت پویا را بعد این‌که استفاده‌ای از متغیر نداشتیم آزاد یا به اصطلاح deallocate کنیم. ما می‌توانیم با استفاده از عملگرهای new و delete به ترتیب به طور پویا حافظه را اختصاص و آزاد کنیم.



📃 در این آموزش، ما به طور کارآمد مدیریت حافظه را در ++C با استفاده از عملیات‌های new و delete با کمک مثال‌ها، یاد خواهیم گرفت:

👉 https://www.roxo.ir/managing-memory-in-cpp-using-new-and-delete



💻 #برنامه_نویسی #سی_پلاس_پلاس

🆔 @roxo_ir
لیست پیوندی (‌Linked List‌) یکی از مهم‌ترین ساختار‌های داده است. اغلب ما با موقعیت‌هایی روبرو می‌شویم که داده، ماهیت پویا دارد و تعداد داده‌ها نمی‌تواند پیش‌بینی شود یا تعداد داده‌ها در طول اجرای برنامه تغییر می‌کند. لیست‌های پیوندی در این نوع موقعیت‌ها بسیار مفید هستند.


📃 لیست‌های پیوند در ++C (لیست پیوندی تکی):

👉 https://www.roxo.ir/single-link-list-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس


🆔 @roxo_ir
فضای نام‌ها اجازه‌ی گروه‌بندی نام‌هایی که محدوده‌ی سراسری دارند را در محدوده‌های کوچک‌تر،‌ می‌دهند. آن‌ها در محدوده‌ی فضای نام فراهم می‌شوند. این امکان سازماندهی عناصر برنامه را در داخل محدوده‌های مختلف که توسط نام‌ها شناخته می‌شود را می‌دهد.

فضای نام یک ویژگی اضافه‌شده در ++C است و در زبان C ارائه نشده است.
یک فضای‌نام یک ناحیه‌ی اعلام شده است که یک محدوده برای شناسه‌ها (نام‌‌های انواع، تابع، متغیر و غیره) در داخل آن، فراهم کرده است.
فضای نام‌های مختلف با نامی یکسان، مجاز هستند. همه‌ی اعلامیه در آن‌ها در محدوده‌ی نام‌گذاری شده اعلام شده هستند.


📃 آشنایی کامل با Namespace (فضای نام) در ++C:

👉 https://www.roxo.ir/what-is-namespace-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس


🆔 @roxo_ir
یک الگو (template) ابزاری بسیار قدرتمند و ساده در زبان برنامه‌نویسی ++C به حساب می‌آید. خیلی ساده شما نوع داده را به عنوان پارامتر ارسال می‌کنید، به طوری که نباید کد مشابه برای انواع داده مختلف بنویسیم. به عنوان مثال، یک کُمپانی نرم‌افزاری ممکن است برای انواع داده‌ی مختلف، به تابع ()sort نیاز داشته باشد. به جای این‌که قطعه‌کُد‌های مختلفی بنویسید و نگه‌‌داری کنید،‌ می‌توانید یک‌بار تابع ()sort را نوشته و نوع داده را به عنوان پارامتر ارسال کنید.


📃 الگو‌ها (Templates) در ++C

👉 https://www.roxo.ir/templates-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس


🆔 @roxo_ir
اشاره‌گر‌ها برای دسترسی به منابعی که خارج از برنامه هستند، مانند حافظه‌ی heap، استفاده می‌شوند. بنابراین برای دسترسی به حافظه‌ی heap (اگر چیزی در داخل حافظه‌ی heap ایجاد شده باشد)، از اشاره‌گرها استفاده می‌شود. زمانی که به هر منبع خارجی دسترسی داریم، ما فقط یک کُپی از منبع استفاده می‌کنیم. اگر هر تغییری در آن منبع رخ دهد، درواقع تنها نسخه‌ی کپی‌شده‌ی آن را تغییر داده‌ایم. اما، اگر از یک اشاره‌گر برای منبع استفاده کنیم، می‌توانیم منبع اصلی را تغییر دهیم.


📃 اشاره‌گر‌های هوشمند (Smart Pointers) در ++C:

👉 https://www.roxo.ir/smart-pointers-in-cpp-and-how-to-use-them


💻 #برنامه_نویسی #سی_پلاس_پلاس

🆔 @roxo_ir
گاهی پیاده‌سازی کل تابع، نمی‌تواند در کلاس پایه (base class) صورت بگیرد. چنین کلاسی، کلاس انتزاعی (abstract class) خوانده می‌شود. برای مثال، کلاس شکل (Shape) یک کلاس پایه است. نمی‌توان تابع ()draw را در این کلاس پیاده‌سازی کرد. اما می‌دانیم که هر کلاس مشتق‌شده (derived class) باید تابع ()draw را پیاده‌سازی کند. به طور مشابه، یک کلاس حیوان (Animal class) تابع ()move (فرض کنیم که همه‌ی حیوانات حرکت می‌کنند) پیاده‌سازی نمی‌کند. علاو‌ه بر آن همه‌ی حیوانات باید بدانند چطور حرکت کنند. نمی‌توان از کلاس‌های انتزاعی، شیء (‌objects) ایجاد کرد.

یک تابع مجازی خالص (pure virtual function) یا یک تابع انتزاعی (‌abstract function) در ++C یک تابع مجازی است که می‌توان آن را پیاده‌سازی کرد. اما می‌بایست آن را در کلاس مشتق‌شده به اصطلاح override یا بازنویسی کرد، در غیر این صورت، کلاس مشتق‌شده هم به کلاس انتزاعی تبدیل خواهد شد. یک تابع مجازی با تخصیص مقدار 0 در اعلامیه‌اش، اعلام می‌شود.


📃 مفهوم و کاربرد کلاس‌های انتزاعی در ++C

👉 https://www.roxo.ir/abstract-classes-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس


🆔 @roxo_ir
بیشتر اوقات، با موقعیت‌هایی روبرو می‌شویم که باید گروهی از داده‌ها را که یا انواع داده‌ی مشابهی دارند یا انواع داده‌ی غیر‌مشابه، ذخیره کنیم. می‌دانیم که آرایه‌ها برای ذخیره‌ی مجموعه‌ای داده، از انواع داده‌ی مشابه در مکان‌های حافظه‌ به صورت پیوسته استفاده می‌شوند. برخلاف آرایه‌، ساختار در C++ انواع داده‌ تعریف شده کاربر است که برای ذخیره‌ی گروهی از آیتم‌ها از انواع داده‌ی غیرمشابه، استفاده می‌شود.

یک ساختار یک نوع داده‌ی تعریف‌شده کاربر در ++C/C است. یک ساختار یک نوع داده‌ ایجاد می‌کند که می‌تواند برای گروهی از آیتم‌ها از انواع داده‌ی ممکن در یک نوع واحد استفاده شود.


📃 آشنایی با ساختار (Struct) در ++C

👉 https://www.roxo.ir/structure-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس

🆔 @roxo_ir
یک پیمایشگر (iterator) یک شیء (مانند یک اشاره‌گر) است که به یک عنصر درون نگه‌دارنده (container) اشاره می‌کند. می‌توان از پیمایشگر‌ها (iterators) برای انتقال کامل محتوای نگه‌دارنده استفاده کرد. آن‌ها می‌توانند به عنوان چیزی شبیه به یک اشاره‌گر که اشاره می‌کنند به تعدادی مکان تجسم شوند و می‌توان با استفاده از آن‌ها به محتوا در آن مکان خاص دسترسی داشت.

پیمایشگر‌ها نقشی حیاتی در ارتباط الگوریتم‌ها با نگه‌دارنده‌ها همراه با دستکاری داده‌‌ی ذخیره‌شده داخل نگه‌دارنده‌ها بازی می‌کنند. واضح‌ترین شکل یک پیمایشگر (iterator‌) یک اشاره‌گر (pointer) است. یک اشاره‌گر می‌تواند به عناصر در یک آرایه اشاره‌ کند و می‌توان تمام عناصر آرایه را با استفاده از اُپریتور افزایش (‌increment operator (++)) پیمایش کرد. اما همه‌ی پیمایشگر‌ها قابلیتی مشابه اشاره‌گر‌ها را ندارند.


📃 آشنایی با پیمایشگر‌ها (Iterators) در ++C:

👉https://www.roxo.ir/iterators-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس


🆔 @roxo_ir
یک tuple، شی‌ای است که می‌تواند تعدادی از عناصر را نگه‌دارد. عناصر می‌توانند از انواع داده‌ی مختلف باشند. عناصر tuples به ترتیبی که در آن، آن‌ها دسترسی خواهند داشت، به عنوان آرگومان (arguments) مقداره‌دهی اولیه شده هستند.


📃 آشنایی کامل با tuple یا چندتایی در c++:

👉https://www.roxo.ir/tuples-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس


🆔 @roxo_ir
کلمات کلیدی در ++C

زمانی که کامپایلر کُد منبع ++C را پردازش می‌کند، هر گروه از کارکتر‌ها توسط فضای خالی جدا می‌شوند که با نام یک توکن یا نشان یا token خوانده می‌شود. نشان‌ها کوچکترین واحد‌های خاص در یک برنامه هستند. یک برنامه‌ی ++C با استفاده از نشان‌ها (tokens) نوشته می‌شود. این نشان‌ها به این صورت هستند:

❇️ کلمات کلیدی (Keywords)
❇️ شناسه‌ها (Identifiers)
❇️ ثوابت (Constants)
❇️ رشته‌ها (Strings)
❇️ عملگرها (Operators)

کلمات کلیدی (Keywords) که به عنوان کلمات رزرو شده هم شناخته می‌شوند، معنای خاصی برای کامپایلر‌های ++C دارند و همیشه به صورت کوتاه و حروف کوچک نوشته می‌شوند. کلمات کلیدی کلماتی هستند که زبان برای هدفی خاصی از آن‌ها استفاده می‌کند. مانند void، int، public و غیره. کلمات کلیدی نمی‌توانند برای نام یک متغیر یا نام یک تابع استفاده شوند.


📃 همه چیز درباره کلمات کلیدی در ++C:

https://www.roxo.ir/keywords-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس


🆔 @roxo_ir
قواعد نامگذاری (Naming Convention) در ++C

نامگذاری یک فایل یا یک متغیر اولین و پایه‌ترین گام‌هایی است که یک برنامه‌نویس برای نوشتن کد تمیز (clean codes) بر‌می‌دارد. نامگذاری باید صحیح و مناسب باشد، به طوری‌که برای برنامه‌نویس دیگری به عنوان راهی آسان برای خواندن کد عمل کند. قواعد نامگذاری در c++، مجموعه‌ای از قوانین برای انتخاب نام‌ معتبر برای یک متغیر و تابع در یک برنامه‌ی ++C است.


📃 آشنایی کامل با قوانین نامگذاری در ++C:

👉 https://www.roxo.ir/naming-convention-in-c-plus-plus


💻 #برنامه_نویسی #سی_پلاس_پلاس



🆔 @roxo_ir